【问题标题】:NASM - org changes addresses or only specifies load addressNASM - org 更改地址或仅指定加载地址
【发布时间】: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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-07-31
    • 2012-02-02
    • 1970-01-01
    • 1970-01-01
    • 2013-07-12
    • 2021-09-06
    • 1970-01-01
    • 2020-08-01
    相关资源
    最近更新 更多