我在第一行有文本。我想在第二行写一篇文章。但是怎么做呢?
这里是我的示例代码:
start:
mov ax, 07C0h
add ax, 288
mov ss, ax
mov sp, 4096
mov ax, 07C0h
mov ds, ax
mov ah, 09h
mov cx, 1000h
mov al, 20h
mov bl, 17h
int 10h
mov si, text_string
call print_string
jmp $
text_string db 'This is my Operating System!', 0
print_string:
mov ah, 0Eh
.repeat:
lodsb
cmp al, 0
je .done
int 10h
jmp .repeat
.done:
ret
times 510-($-$$) db 0
dw 0xAA55
现在,我该如何在第二行写文本呢?
发布于 2018-07-23 02:10:58
要在上打印下一行,请插入回车符和换行码:
text_string db 'This is my Operating System!', 13, 10
db '----------------------------', 0
代码13 (回车符)将光标带回屏幕的左边缘。
代码10 (换行符)使光标向下一行。
但是,如果您想要在上打印全屏的第二行,您可以使用BIOS02h功能将光标设置在那里:
mov dx, 0100h ; DH=row 1, DL=column 0
mov bh, 0 ; display page
mov ah, 02h ; SetCursor
int 10h
在标准的80x25屏幕上,列的编号从0到79,行的编号从0到24。
移动,09小时移动cx,1000小时移动,20小时移动,17小时集成10小时
关于你的清晰屏幕代码:
BH
寄存器中指定显示页。在CX
寄存器中使用mov bh, 0
我建议你这样写:
mov cx, 2000
mov bx, 0017h
mov ax, 0920h
int 10h
https://stackoverflow.com/questions/51467378
复制相似问题