使用 DOSBOX 在汇编语言中使用循环

Using loop in assembly language using DOSBOX

你好,我需要像这样显示输出

9_8_7_6_5_4_3_2_1_0

但是我很难临时存储 "underscore",而且我注意到 DH、CH、BH、BL 等寄存器不能用于使用 int int 21H 进行输出。这是我的代码

.model small
.stack
.data
.code

begin:
   mov ah, 2
   mov cx, 10
   mov dl, 39h
   int 21h
back: mov dl, 5fh
   int 21h
   sub dl, 39
   int 21h
   loop back    
   mov ah,4ch
   int 21h
end begin

您可以使用另一个寄存器来存储计数器 (9..0),例如 bl :

.model small
.stack
.data
.code

begin:
   mov ah, 2
   mov cx, 10
   mov bl, '9'     ;◄■■ COUNTER 9..0.
back:
   mov dl, bl      ;◄■■ MOVE COUNTER INTO DL.
   int 21h         ;◄■■ DISPLAY COUNTER.
   dec bl          ;◄■■ COUNTER-1.
   mov dl, 5fh     ;◄■■ MOVE UNDERSCORE INTO DL.
   int 21h         ;◄■■ DISPLAY UNDERSCORE.
   loop back    
   mov ah,4ch
   int 21h
end begin