Я пытаюсь добавить два 4-значных (16-битных) числа BCD и отобразить результат.
Я написал код ниже, но я хочу знать, как мне обрабатывать бит переноса, потому что эта программа зависает DosBox (эмулятор TASM)
По какой-то причине мой профессор хотел, чтобы мы отображали ввод-вывод, пожалуйста, потерпите меня :/
model small
.data
res dw ?
.code
.startup
; 1st number
mov cx,4
mov bx,0
l1:
shl bx,4
mov ah,01
int 21h
and al,0FH
add bl,al
loop l1
mov ah,02h ; display + sign
mov dx,"+"
int 21h
; 2nd number
mov cx,4
mov bx,0
l3:
shl dx,4
mov ah,01
int 21h
and al,0FH
add dl,al
loop l3
mov al,bl
add al,dl
daa
mov cl,al # storing lower byte in clower
mov al,ah
adc al,bh
daa
mov ch,al # storing higher byte in c higher
mov [res],cx
mov ax,02h
mov dx,res # To display the result
int 21h
.EXIT
END
Кроме того, я делаю что-то не так в коде?
mov ax,02h
перед отображением результата, это должно бытьmov ah,02h
, как и в предыдущем использовании. Удачи с этим, хотя, для отображения числа. MS-DOS не имеет функции вывода чисел. - person Weather Vane   schedule 11.10.2020