使用DOSBOX

时间:2016-11-25 13:33:03

标签: loops assembly dosbox

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

  

9_8_7_6_5_4_3_2_1_0

但是我很难存储"下划线"暂时,因为我注意到像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

1 个答案:

答案 0 :(得分:2)

您可以使用其他寄存器来存储计数器(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