[英]How to use for loop in Assembly?
我的任务是根据用户输入执行输出等量“Text Here”的代码。 但是,我似乎对我的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
无论我输入什么数字,我得到的代码只是'Text'的一个输出。
编辑:我试过这个,但现在我的输出是无限的:(
isa:
inc bl
mov ah, 09h
mov dx, offset ulit
int 21h
cmp bl, 30h
jne isa
je exit
首先,确保在开始循环之前将BX寄存器初始化为零:
...
xor bx,bx
isa:
...
为避免DOS中断覆盖(使用过的)BX寄存器的内容,请将其保护在堆栈中(不确定DOS中断的调用约定,对我来说太久了):
...
push bx
int 21h
pop bx
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.