[ORG 0x7C00]对文件实际做了什么?

时间:2017-10-18 13:22:14

标签: assembly nasm

我将以下代码放入NASM:

[BITS 16]  
[ORG 0x7C00]  

TIMES 510 - ($ - $$) db 0  

在我的十六进制编辑器中查看它,发现了一堆0。这是我的预期,但现在我问的问题是: [ORG 0x7C00]对文件做了什么?

1 个答案:

答案 0 :(得分:1)

ORG指令用于提供"提示"到结果对象文件的汇编器和链接器。它允许您指定文件部分的基址。

创建"功能" (你可能会CALL),如果那些距你调用的地方足够远,汇编器将需要使用一个绝对地址来调用,而不是偏离当前指令。 ORG指令有效地锁定了代码,使其成为非位置无关的代码。

实际上,除非您编写长代码块,否则大多数JMPCALL指令都是SHORTNEAR,允许简单的偏移量为使用