0

我正在为 Linux 使用 NASM,我想知道如何在保护模式下清除屏幕。我找到了使用 int10h 的解决方案,但在保护模式下我只能使用 int80h。提前致谢。

4

1 回答 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 回答