如何在长模式下禁用VGA光标

时间:2019-10-14 10:48:40

标签: assembly x86 att vga

我正在尝试在长模式下以汇编形式编写游戏(没有操作系统,只需启动游戏)。大学提供了用于将cpu切换为长模式的游戏内核,因此我不能使用int 0x10。现在,我正在测试一些东西,但无法更改vga卡的任何寄存器(在boch中)。 这是我试图禁用游标的方法:

// set dx to index register
movw $0x3b4, %dx
// set index to 0x0a for cursor start register
movb $0x0a, %al
outb %dx

// set rax to zero
xorq %rax, %rax

// write value
movw $0x3b5, %dx
// set cursor start register to 0b00000000 to disable cursor
movb $0x00, %al
outb %dx

但这似乎不起作用。没有什么变化。输出命令有问题吗?没有int 0x10的情况下如何更改vga寄存器?

0 个答案:

没有答案