汇编语言如何横、竖、斜打印

how to print horizontally,vertically and diagonally in assembly language

我的代码是这样的

debug
a
mov cx,000a
mov ah,02
mov dl,30
int 21
inc dl
loop 0107
mov dl,0a
int 21
mov dl,0d
int 21
mov cx,0009
mov dl,20
int 21
mov dl,31
int 21
push dx
mov dl,0a
int 21
pop dx
inc dl
loop 011e
push dx
mov dl,0a
int 21
mov dl,0d
int 21
pop dx
mov cx,0009
mov dl,31
int 21
push dx
mov dl,0a
int 21
mov dl,0d
int 21
pop dx
inc dl
loop 0139
int 20

实际产量

期望的输出:

我想这应该是你程序的诀窍:

...
165B:011E CD21          INT 21
165B:0120 52            PUSH    DX
165B:0121 B20A          MOV DL,0A
165B:0123 CD21          INT 21
165B:0125 5A            POP DX
165B:0126 FEC2          INC DL
165B:0128 E2F4          LOOP    011E
...

之后光标位于最后一行,您必须将其向上移动。您可以使用 BIOS 中断 10

的功能 02 和 03 来实现此目的

改变

165B:012A 52            PUSH DX
165B:012B B20A          MOV DL,0A
165B:012D CD21          INT 21
165B:012F B20D          MOV DL,0D
165B:0131 CD21          INT 21
165B:0133 5A            POP DX

mov ah, 03
mov bh, 00
int 10
mov ah, 02
mov dl, 00
sub dh, 9
int 10

你必须调整它后面的跳跃。变化

loop 0139

loop 013E