; (iam在打印此系列122222223222时面临问题)您能否请检查代码并指出我的错误)
.model small
.stack 100h
.code
start:
mov cx,3
l1:
mov ah, 02
mov dl, 49
int 21h
inc dl
mov bx,cx
mov cx, 3
l2:
mov ah, 02
mov dl,50
int 21h
loop l2
mov cx,bx
inc dl
loop l1
mov ah, 4ch
int 21h
end start
答案 0 :(得分:2)
您的程序几乎可以正常运行。当前输出为“ 122212221222”。
不断重复的“ 1”字符来自以下事实:您在内内重复使用了立即数49 循环!
我建议您将其存储在DH
寄存器中,从那里检索它,并在每次迭代时递增DH
:
mov dh, "1" ; ASCII=49
mov cx, 3
outerLoop:
mov ah, 02h
mov dl, dh ; Successively "1", "2", "3"
inc dh
int 21h
mov bx, 3
innerLoop:
mov ah, 02h
mov dl, "2" ; ASCII=50
int 21h
dec bx
jnz innerLoop
dec cx
jnz outerLoop
请注意,除了使用BX
作为内部循环的计数器之外,您还可以轻松使用BX
作为内部循环的计数器。
出于可读性考虑,您可以: