【发布时间】:2020-01-18 02:36:11
【问题描述】:
我在(emu8086) 上运行以下汇编代码:
clearScr macro
mov ah, 06h
mov al, 00h
mov bh, 71h
mov cx, 0000h
mov dx, 184fh
int 10h
clearScr endm
print macro string
mov ah, 09h
lea dx, string
int 21h
print endm
.model small
.stack 100h
.data
msg db 'Hello, world!', '$'
nl db 0AH, 0DH, '$'
myname db 'Ahmed', '$'
.code
main proc
mov ax, @data
mov ds, ax
print myname
clearScr
print msg
mov ax, 4c00h
int 21h
main endp
clearScr 宏似乎正在移动光标,因为屏幕上打印的最终文本不是从角落开始的。
为什么会这样?我不是想设置/移动光标。
【问题讨论】:
-
int 10hfunction06h只是“向上滚动窗口”,因此您还需要将光标位置重置为第一列。 -
@lurker 默认情况下它已经设置为第一列。在这里它向前推进,我的问题是为什么
-
"默认设置为第一列" - 是什么让你这么认为?我看到你打印
Ahmed,但你没有做 cr/lf 后记。这不是意味着您位于第 6 列吗?