Her*_*roz 4 assembly hexdump 6502 disassembly eeprom
我观看了 Ben Eater 的关于构建基于 6502 芯片的计算机的视频,但我陷入了第 3 部分(汇编语言 VS 机器代码)。他正在对 32k EEPROM 进行编程,并通过汇编进行编程以闪烁 LED。这是他使用的汇编程序http://sun.hasenbraten.de/vasm/ 这是他的代码:
但我有一个关于org
指令的问题,这就是我所理解的 org 告诉汇编器从哪个地址开始的意思?在图片中org
equals$8000
所以我认为第一个地址指令应该是8000
但是当他输出文件时它 equal 0000
。
为什么第一条指令的地址不是8000
?
它是一个没有元数据的平面二进制文件,并且无论如何都会hexdump
向您显示文件偏移量,而不是寻找元数据来找出加载地址。
如果您用来xxd
进行十六进制转储,它有一个-o
选项可让您指定要添加到文件位置的偏移量。xxd -g 1 -o 0x8000 a.out
应该从 (1-byte groups, ) 开始00008000
并且通常类似于hexdump -C
(1-byte groups, -groupsize 1
)
平面二进制文件的反汇编程序通常具有类似的选项,可以像将图像加载/映射到内存中的某个基地址一样进行反汇编。