如何在保护模式下清除屏幕

时间:2013-10-25 00:24:08

标签: linux assembly screen nasm clear

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

1 个答案:

答案 0 :(得分:0)

您可以将\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