gpt4 book ai didi

assembly - GNU 汇编器 .long 声明归零

转载 作者:行者123 更新时间:2023-12-03 23:06:42 26 4
gpt4 key购买 nike

使用 GNU Binutils 声明汇编代码时,例如:

.long MY_Label
.long MY_Second_label

即使操作码和其他信息在地址空间中将它们分开,也可以在进行十六进制转储时无错误地组装,但始终映射到归零的 32 位字符串。我正在编译:
m68k-elf-gcc -c hello.s -o rom.o -nostdlib -static && m68k-elf-objcopy -O binary rom.o rom.bin

并转储我的二进制文件:
m68k-elf-objdump -D -m m68k --start-address=0x0000 --prefix-addresses -l -x -b binary --disassemble-zeroes rom.bin

我的汇编代码中缺少什么?

最佳答案

您从未链接过您的 .o可重定位,因此地址仍然是占位符。 -c告诉 GCC 不要链接,只是组装,所以 -static-nostdlib是没有意义的。

如果您使用 objdump -drwC rom.o您将在反汇编(-r 选项)旁边看到符号重定位。

删除 -c从初始命令开始并保持其他所有内容相同:

m68k-elf-gcc  hello.s -o rom.elf  -nostdlib -static

关于assembly - GNU 汇编器 .long 声明归零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62144439/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com