我受命编写一个代码,该代码将根据用户输入输出相等数量的“此处文本”。但是,我似乎对cmp函数感到困惑。
;Get keyboard input
mov ah, 01h
int 21h
;Save to bl for later use
mov bl, al
jmp isa
isa:
mov ah, 09h
mov dx, offset text
int 21h
cmp bl, bl
jne isa
je exit
无论我输入什么数字,使用此代码获得的只是“文本”的一个输出。
编辑:我尝试过这个,但是现在我的输出是无限的:(
isa:
inc bl
mov ah, 09h
mov dx, offset ulit
int 21h
cmp bl, 30h
jne isa
je exit
答案 0 :(得分:0)
首先,请确保在开始循环之前将BX寄存器初始化为零:
await foreach
为避免DOS中断覆盖(使用的)BX寄存器的内容,请将其保护在堆栈上(不确定DOS中断的调用约定,对我来说太早了):
...
xor bx,bx
isa:
...