2014-01-28 27 views
-1

我试图了解NASM的org指令,并从各种在线来源阅读它已使我感到困惑。NASM - 组织更改地址或只指定加载地址

这里是我的问题:

  • 是否org只有指定的程序将被加载到内存中的地址?
  • org 0x10是否暗示在org之后的第一条指令将被视为地址0,并将0x10添加到它?如果是,是否会影响在这两点之间汇编的指令中使用的标签地址?
  • 如果我在一个程序中使用org,并加载另一个不使用org的程序,第一个程序的值是继续在这里使用,还是遵循其他一些机制?

请原谅,如果有些问题看起来很愚蠢,这让我非常困惑。

+0

'org'指令只能在'-f bin'输出格式(和一些外来的)中使用。它建议纳斯姆在程序预计要加载的地址 - 它不会导致它加载到那里。如果没有给出'org'指令,那么Nasm默认为'org 0'。实际上,给定的值被添加到文件中所有标签/变量的文件偏移量。 http://www.nasm.us/xdoc/2.11/html/nasmdoc7.html#section-7.1.1 –

回答

0

ORG指令只是将给定的值添加到代码中的任何相对内部地址。标签就是一个例子,变量位于各个代码段中。