事情缘起于对操作系统boot过程的学习。
导出硬盘的MBR记录:
dd if=/dev/disk0 of=mbr.bin bs=512 count=1
在Linux上,
objdump -D -b binary -mi386 -Maddr16,data16,intel --adjust-vma=0x7c00 mbr.bin # -b : format # -D : all section # -m : platform # -M : diassembler option
在Mac上,
ndisasm -b16 -o7c00h -a -s7c3eh mbr.bin # -b : 16bit format # -o : load to 0x7c00h # -a : auto sync # -s : manual sync address
ndisasm
是NASM assembler的一部分,在Mac OS X上通常已经预装。