【发布时间】:2017-11-20 14:30:59
【问题描述】:
我试图在汇编中对角显示 0-9,但输出将我对角打印的数字放在窗口的中间。
代码如下:
start:
mov ah, 02h
mov cl, 0Ah ;counter (10)
mov dx, 02h
;mov bx, 02h
mov dl, 30h ;start printing 0-9
mov dh, 02h ;start row
mov al, 02h
int 21h
again:
int 10h
int 21h
;add dx, 01h
inc dh
inc dx
inc al
loop again
mov ax, 4c00h
int 21h
输出应该是:
0 1 2 3 4 5 6 7 8 9
当前输出打印,但在窗口的中间。我尝试添加一个新寄存器bh,并在执行文件时使用它将光标放在当前位置。如何从光标开始显示它?我应该把它放在一个循环上并增加寄存器ah 吗?
【问题讨论】:
-
先打印回车和换行符(CR + LF, ascii 10 和 13),这会将光标移动到下一行的第一个位置
-
那个或者如果有熟vs生的选项。在 pc/dos 世界中,cooked 意味着 0x0A 变成 0x0D 0x0A,否则你必须自己做,我假设这个系统调用你需要自己做。
标签: assembly x86-16 tasm dosbox