如何用汇编语言显示字符串10次?
这是我的代码:
.model small
.stack 100h
.data
msg db 'rashed $'
.code
main proc
mov ax,@data
mov ds,ax
lea dx,msg
mov ah,9 ;string output
int 21h
mov dx,0 ;dx counts characters
mov ah,9 ;prepare for read
int 21h
while_:
cmp al,0dh ;carriage return?
je end_while ;yes exit
inc dx ;no carriage return, increment count
int 21h ;read character
jmp while_ ;loop back
end_while:
exit:
mov ah,4ch
int 21h
main endp
end main
输出为:
我想显示这个字符串 10 次,但是字符串减去了?如何显示 10 次?
mov dx,0 ;dx counts characters
要多次显示相同的文本,请选择与执行输出所需的寄存器不同的计数器寄存器(在您的情况下为
AX
和DX
)。我建议把计数器放在CX
。
mov cx, 11
while_:
dec cx ;Change counter
jz end_while ;Exit after 10 iterations
mov ah, 9
int 21h ;Print string
jmp while_ ;Loop back
end_while:
因为while循环首先测试条件,所以我分配了11 而不是 10 个。