使用 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
你好,我需要像这样显示输出
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