我們有一個字符串,它的偏移量在di中。這個proc會將它轉換爲ax中的整數。 該proc將適用於0-999。但例如對於1000或2343或其他大於1000的數字將不起作用。哪裏有問題 ?我很困惑。 tlen也是我定義的臨時字節。程序集atoi暈眩錯誤
atoi proc far
mov cl,len
mov ch,0
mov ah,0
start:
dec cl
jcxz addlastdigit
mov tlen,cl;save cl
mov al,1
mov bl,10
getMultiplier:
mul bl
Loop getMultiplier
mov cl,tlen ; retrive cl
mov dl,byte ptr[di]
sub dl,30h
mul dl
add num,ax
inc di
jmp start
addlastdigit:
mov ax,num
mov dl,byte ptr[di]
sub dl,30h
mov dh,0
add ax,dx
Ret
atoi endp
請格式正確的代碼... – trojanfoe