當我添加3 + 3它的答案是正確的,但是當我添加7 + 7它不起作用。我想添加兩個數字,如75 + 75其答案應該是150或900 + 100其答案應該是1000.如何在彙編語言中添加兩個16位數字?
它的程序請告訴我什麼。什麼是錯我的代碼,我很抱歉,因爲我只是新的彙編語言..
.model small
.stack 0100h
.data
num1 db ?
num2 db ?
msg1 db 13,10, "Enter 1st Number : $"
msg2 db 13,10, "Enter 2nd Number : $"
msg3 db 13,10, "The answer is : $"
.code
mov ax, @data
mov ds, ax
lea dx,msg1
mov ah,09h
int 21h
start:
mov ah,01h
int 21h
cmp al,0dh
je second
sub al,30h
push ax
mov num1,al
jmp start
second:
lea dx,msg2
mov ah,09h
int 21h
number2:
mov ah,01h
int 21h
cmp al,0dh
je ans
sub al,30h
push ax
mov num2,al
jmp number2
ans:
mov al,num1
add al,num2
MOV AH,9
LEA DX,MSG3
INT 21H
ADD AL,30H
MOV AH,2h
MOV DL,AL
INT 21H
jmp start
end
很多文章這是相同的ol'問題:多位數字。看看如何將一個字符串轉換爲數字(atoi)和反向(itoa)。這方面應該有很多問題。 –
我知道如何反轉,但是,我不知道現在如何解決這個問題..有什麼,你可以幫我修復我的代碼?謝謝 –
瑪格麗特剛剛給你解決方案。您試圖將代表數字的多位字符串轉換爲數字。有* no * panacea指令來做到這一點,而是,需要循環閱讀從右到左的字符串,並從文本轉換爲整數和相乘。在谷歌的'atoi'彙編中有很多例子。 –