.MODEL SMALL
.STACK 1000
.DATA
MSGA DB 13,10,"Input first number: ","$"
MSGB DB 13,10,"Input second number:","$"
MSGC DB 13,10,"The sum is: ","$"
NUM1 db ?
NUM2 db ?
NUM3 db ?
.CODE
MAIN PROC NEAR
MOV AX, @DATA
MOV DS, AX
; get first number
LEA DX, MSGA
MOV AH, 09h
INT 21h
MOV AH, 01
INT 21H
SUB AL, '0'
MOV BL, AL
MOV AH, 01
INT 21H
SUB AL, '0'
MOV CL, AL
; get second number
LEA DX, MSGB
MOV AH, 09h
INT 21h
MOV AH, 01
INT 21H
SUB AL, '0'
MOV DL, AL
MOV AH, 01
INT 21H
SUB AL, '0'
MOV DH, AL
; add
ADD CL, DH
ADC BL, DL
MOV NUM1, CL
ADD NUM1, '0'
MOV NUM2, BL
ADD NUM2, '0'
; output sum
LEA DX, MSGC
MOV AH, 09h
INT 21h
MOV DL, NUM2
MOV AH, 02H
INT 21h
MOV DL, NUM1
MOV AH, 02H
INT 21h
MOV AH, 4Ch
INT 21h
MAIN ENDP
END MAIN
以上是我的代碼,用於在程序集中添加2位兩位數字。我想知道爲什麼ADC不起作用。如果這些數字在添加時沒有獲得進位,我的代碼就可以工作。但並非如此。我誤解了ADC的真正用途嗎?我應該如何處理我的代碼?如何在裝配中使用ADC?
'ADC'確實沒有用處,因爲添加2位永遠不會給出無法修復的字節結果。 – m0skit0 2012-07-19 14:30:16
我的意思是「適合」而不是「修復」對不起 – m0skit0 2012-07-19 14:36:57