我正在为 Linux 使用 NASM,我想知道如何在保护模式下清除屏幕。我找到了使用 int10h 的解决方案,但在保护模式下我只能使用 int80h。提前致谢。
问问题
709 次
1 回答
1
您可以写入\x1b[2J
标准输出,以便清除终端并使用 修复光标位置\x1b[H
,例如在 nasm 中:
global _start
section .data
clr db 0x1b, "[2J", 0x1b, "[H"
clrlen equ $ - clr
section .text
_start:
mov eax, 4
mov ebx, 1
mov ecx, clr
mov edx, clrlen
int 0x80
mov eax, 1
mov ebx, 0
int 0x80
对于 gnu 汇编程序:
.globl _start
.data
clr : .ascii "\x1b[2J\x1b[H"
clrlen = . - clr
.text
_start:
movl $4, %eax
movl $1, %ebx
movl $clr, %ecx
movl $clrlen, %edx
int $0x80
movl $1, %eax
movl $0, %ebx
int $0x80
于 2013-10-25T01:36:42.087 回答