我已经做了这个代码,增加我输入的数字,但是我有麻烦让它减少我输入的数字。我想把数字从DL移到BL,然后DEC它,只是再次显示它,但是它只给我我输入的第一个数字,而不是DEC的。
.model small
.stack 200h
.data
mesaj1 db 13,10, "Introduceti un numar: $"
mesaj2 db 13,10, "Numarul incrementat este: $"
mesaj3 db 13,10, "Numarul decrementat este: $"
.code
main proc
mov ax, @data
mov ds, ax
mov dx, offset mesaj1
mov ah,09h
int 21h
mov ah,01h
int 21h
sub al,48
mov bl,al
inc bl
add bl,48
mov dx, offset mesaj2
mov ah,09h
int 21h
mov dl,bl ;
mov ah,02h
int 21h
mov bl,al
dec bl
mov dx, offset mesaj3
mov ah,09h
int 21h
mov dl,bl
mov ah,02h
int 21h
mov ah, 4ch
int 21h
main endp
end main
这是它给我的1,我假设它德克斯的INC的数字,而不是我键入的。
试着把我放进DL的东西移回BL,DEC它,然后显示它,但我猜它不像那样工作。
2条答案
按热度按时间bxgwgixi1#
操作的顺序很重要!
1.显示器 * 测量值j2 *
1.将BL递增移动到DL
1.显示编号
1.显示器 * 测量值j3 *
1.将BL递减移入DL
1.显示编号
代码:
替代代码(短4个字节):
qeeaahzv2#
好的,我想出来了,我只是在移动bl,al的时候放了一个mov cl,al,为了保存它,然后在我递增它之后,我做了同样的事情,但是用cl代替bl,然后DEC。