assembly 为什么程序集中的.org 8000的第一个地址等于0000?

pzfprimi  于 2023-01-02  发布在  其他
关注(0)|答案(1)|浏览(109)

我看了Ben Eater的视频关于建立一个基于6502芯片的计算机,我被困在第3部分(汇编语言VS机器码).他正在编程32k EEPROM,他编程汇编 Flink LED.这是汇编程序,他用http://sun.hasenbraten.de/vasm/在这里他的代码:

但是我有一个关于org指令的问题,这是我所理解的org告诉汇编程序从哪个地址开始对吗?在图片org等于$8000,所以我认为第一个地址指令应该是8000,但当他输出文件时,它等于0000
为什么第一条指令的地址不是8000

d5vmydt9

d5vmydt91#

这是一个没有元数据的平面二进制文件,hexdump无论如何都会向您显示文件偏移量,而不是查找元数据来计算加载地址。
如果您使用xxd执行十六进制转储,它有一个-o选项,可用于指定要添加到文件位置的偏移量。xxd -g 1 -o 0x8000 a.out应从00008000开始,通常类似于hexdump -C(1字节组,-groupsize 1
平面二进制文件的反汇编程序通常有类似的选项,可以像映像加载/Map到内存中的某个基址一样进行反汇编。

相关问题