我正在製作一個程序,我要從用戶處取得兩個4位數字並顯示它們的總和。添加4位數字並顯示總和 - 彙編語言
我知道如何從用戶處取得4位數的輸入,但我無法將4位數的數字相加並顯示結果。
幫助需要知道如何添加和顯示兩個4位數字的總和。
我使用emu8086彙編
這是我迄今所做的。總和計算不正確。而不是顯示一個總和,一些跡象顯示,如「$」等
.model small
.data
st9 db 13,10,"Enter First Number : ",'$'
st10 db 13,10,"Enter Second Number : ",'$'
st11 db 13,10,"Result = ",'$'
num dw ?
num2 dw ?
a dw 1000
b db 100
c db 10
.code
main proc
mov AX,@data
mov DS,AX
addition:
mov AH,9H
mov DX,offset st9
INT 21H
mov AH,1
INT 21H
SUB AL,30H
MUL a ;1st digit
mov num,AX
mov AH,1
INT 21H
SUB AL,30H
MUL b ;2nd digit
add num,AX
mov AH,1
INT 21H
SUB AL,30H
MUL c ;3rd digit
ADD num,AX
mov AH,1
INT 21H ;4th digit
SUB AL,30H
ADD num,AX
mov AH,9H
mov DX,offset st10
INT 21H
mov AH,1
INT 21H
SUB AL,30H
MUL a ;1st digit
mov num2,AX
mov AH,1
INT 21H
SUB AL,30H
MUL b ;2nd digit
ADD num2,AX
mov AH,1
INT 21H
SUB AL,30H
MUL c ;3rd digit
ADD num2,AX
mov AH,1
INT 21H ;4th digit
SUB AL,30H
ADD num2,AX
call addfunc
exit:
mov AH,4CH
INT 21H
addfunc proc near
mov BX,num2
ADD BX,num
SUB BX,48D
mov AH,9H
mov DX,offset st11
INT 21H
mov AH,2
mov DL,bH
INT 21H
mov AH,2
mov DL,bl
INT 21H
ret
end main
那麼,你會得到什麼?參見[mcve]瞭解如何編寫更完整的問題。另外,當你單步執行內置於emu8086的調試器時,你會看到什麼? –
您的代碼沒有任何評論,所以IDK爲什麼要從總和中減去'48D',但我沒有看到任何會將整數轉換回十進制數字的東西。 –
@PeterCordes而不是顯示總和,一些標誌顯示在屏幕上,如$等。我也編輯了我的問題。 – Yousaf