如何在汇编语言中使用while循环显示一个字符串10次?

问题描述 投票:0回答:1

如何用汇编语言显示字符串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 次?

loops assembly while-loop
1个回答
0
投票
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 个。

© www.soinside.com 2019 - 2024. All rights reserved.