Assembly 为什么“--oformat二进制文件';gnu链接器的选项将`.data';段为0x0200000
我一直在为i386 real mode编写一些“独立”代码,在PXE上网本编写代码时遇到了一些奇怪的错误:Assembly 为什么“--oformat二进制文件';gnu链接器的选项将`.data';段为0x0200000,assembly,ld,att,Assembly,Ld,Att,我一直在为i386 real mode编写一些“独立”代码,在PXE上网本编写代码时遇到了一些奇怪的错误: PXE-E79: NBP is too big to fit in free base memory PXE-M0F: Exiting Intel Boot Agent. 在对二进制文件进行了大量修改之后,我将其隔离为在 .data 段标记 在HEXDUMP之后,我发现ld将指令一直移动到所有位置的0x0200000 我当前正在使用以下工具生成平面垃圾箱: ld --oformat b
PXE-E79: NBP is too big to fit in free base memory
PXE-M0F: Exiting Intel Boot Agent.
在对二进制文件进行了大量修改之后,我将其隔离为在
.data
段标记
在HEXDUMP之后,我发现ld将指令一直移动到所有位置的0x0200000
我当前正在使用以下工具生成平面垃圾箱:
ld --oformat binary
问题:
ld
会这样做选项
在任何情况下,如果您希望链接器执行特定的操作,则需要通过编写链接器脚本来明确地告诉链接器您想要什么。如果您确实编写了一个“不够具体”的链接器脚本,那么您需要使该脚本更加具体。1-ld使用默认链接器脚本。尝试使用-v查看默认值 2-不特定于oformat 3-若要设置另一个尺寸,必须使用 -z最大页面大小=0x 我尝试使用0x100和0x1000,效果很好,但0x500不行
Salu2 totales谢谢,如果有人知道它为什么会这样做,我将保留这个问题。谢谢你的回答。2个MiB页面是什么意思?