我将以下代码放入NASM:
[BITS 16]
[ORG 0x7C00]
TIMES 510 - ($ - $$) db 0
在我的十六进制编辑器中查看它,发现了一堆0。这是我的预期,但现在我问的问题是: [ORG 0x7C00]对文件做了什么?
答案 0 :(得分:1)
ORG
指令用于提供"提示"到结果对象文件的汇编器和链接器。它允许您指定文件部分的基址。
创建"功能" (你可能会CALL
),如果那些距你调用的地方足够远,汇编器将需要使用一个绝对地址来调用,而不是偏离当前指令。 ORG
指令有效地锁定了代码,使其成为非位置无关的代码。
实际上,除非您编写长代码块,否则大多数JMP
和CALL
指令都是SHORT
或NEAR
,允许简单的偏移量为使用