Я получил эту ошибку во время игры с qemu, "qemu-system-i386: Trying to execute code outside RAM"
.
И на gdb
я получил это, так что он остается на movl и когда я выполняю stepi , все сбои:
=> 0xf010002c <relocated>: add %al,(%eax)
relocated () at kern/entry.S:74
74 movl $0x0,%ebp # nuke frame pointer
(gdb) stepi
Remote connection closed
Это произошло, когда я прокомментировал строку kern / entry.S, которая выполняет:
movl %eax, %cr0
Что такое реальноеобъяснение этого?Поскольку часть кода говорит о многих вещах, которые делают, но я действительно не понимаю, почему, если я прокомментирую эту строку кода, она взорвется.
entry:
movw $0x1234,0x472 # warm boot
movl $(RELOC(entry_pgdir)), %eax
movl %eax, %cr3
# Turn on paging.
movl %cr0, %eax
orl $(CR0_PE|CR0_PG|CR0_WP), %eax
movl %eax, %cr0
mov $relocated, %eax
jmp *%eax