我正在使用VirtualBox模拟一台x86 pc。我已经写了一个进入保护模式的引导加载程序。但是我总是得到一个大师冥想的错误。下面是我的代码:
; clear interrupts
cli
; set up gdt
xor eax, eax
mov ax, ds
shl eax, 4
add eax, gdt
mov [gdtr + 2], eax
mov eax, gdt_end
sub eax, gdt
mov [gdtr], ax
lgdt [gdtr]
; enter protected mode
mov eax, cr0
or al, 1
mov cr0, eax
; enter kernel
jmp 08h:0我还测试了jmp 0x2000:0000,但这也不起作用。我哪里做错了?
PS:这是我的GDT代码:
; global descriptor table
gdt:
dq 0 ; null descriptor
; code descriptor kernel
dw 0x0000 ; base low word
dw 0x4000 ; limit low word
db 0x00 ; base high byte
db 0x40 ; flags
db 0x9A ; access byte
db 0x02 ; base center byte
; data descriptor kernel
dw 0x0000 ; base low word
dw 0x4000 ; limit low word
db 0x00 ; base high byte
db 0x40 ; flags
db 0x92 ; access byte
db 0x02 ; base center byte
gdt_end:发布于 2015-10-23 12:10:37
根据我使用CentOS-6.5CPU大师的经验,当你的应用程序需要更多的内存大小,而分配的内存大小或者使用率超过100%时,就会出现。因此,增加分配的RAM大小是该问题的解决方案之一
发布于 2019-09-07 04:03:33
关闭所有正在运行的虚拟机,然后禁用bios中的虚拟化。然后重新启动。然后从bios启用虚拟化。重新启动。这对我很管用
https://stackoverflow.com/questions/24579653
复制相似问题