【发布时间】:2014-01-28 18:59:31
【问题描述】:
我试图理解 NASM 的 org 指令,但从各种在线资源阅读它让我感到困惑。
这是我的问题:
-
org只指定程序加载的内存地址吗? -
org 0x10是否暗示org之后的第一条指令将被考虑在地址0 和0x10 被添加到它?如果是,是否会影响在这两点之间组装的指令中使用的标签地址? - 如果我在一个程序中使用
org,并在我不使用org的地方加载另一个程序,这里会继续使用第一个程序的值,还是遵循其他机制?李>
如果其中一些问题看起来很愚蠢,请原谅,这让我非常困惑。
【问题讨论】:
-
org指令仅适用于-f bin输出格式(以及一些特殊格式)。它建议 Nasm 程序应该在哪个地址被加载——它不会导致它被加载到那里。如果没有给出org指令,Nasm 默认为org 0。实际上,给定的值被添加到文件中所有标签/变量的文件偏移量中。 nasm.us/xdoc/2.11/html/nasmdoc7.html#section-7.1.1
标签: assembly nasm memory-address