【发布时间】:2013-12-26 14:57:59
【问题描述】:
我正在尝试编写一个简单的引导加载程序。所以,我切换到保护模式,跳转到.code32 并尝试跳转到由ld 链接的ELF 文件。 ld 将 .ELF (7F 45 4C ...) 放入请求文件中。 Bochs 将其解释为jnle .+69 命令,所以这不是我一直在等待的结果。如何将 entry 点放在文件的开头?
有一个linker.ld 脚本:
ENTRY (boot)
SECTIONS {
.boot ALIGN(0x1000) : { bootstrap.o(.text) }
.text ALIGN(0x1000) : { *(.text) }
.rodata ALIGN(0x1000) : { *(.rodata) }
.data ALIGN(0x1000) : { *(.data) }
.bss ALIGN(0x1000) : { *(.bss) }
}
【问题讨论】:
-
您不能只跳转到 ELF 文件的第一个字节。您需要解释 ELF 文件,根据其中的描述设置正确的段,找到正确的入口点,然后跳转到。
-
你能给一个简单的ELF解释器(解析器)的链接吗?