53

谁能给我关于 ORG 指令的全面描述?
何时以及为什么在汇编书面应用程序中使用它?

在 x86 或 AMD64 上使用 Nasm。

4

5 回答 5

47

ORG 用于设置汇编器位置计数器。这可能会或可能不会在链接时转换为加载地址。它可用于定义绝对地址,例如在定义可能需要位于固定地址的中断向量之类的东西时,或者它可用于引入填充或为以下代码生成特定的对齐方式。

于 2010-08-04T15:37:28.877 回答
9

ORG 仅指示与当前段相关的下一段代码/数据的放置位置。

将它用于固定地址是没有用的,因为最终地址取决于在汇编时未知的段。

于 2015-04-08T15:12:03.390 回答
3
      During the assemble time ORG directive resets the MLC (memory location counter) to the address specified in the ORG directive.

语法:ORG 注意:可以是无符号绝对值或任何符号或符号 + 。

示例:- 要观察该指令的工作情况,您需要任何使用 ORG 指令的汇编列表。

位置
0000A4 00 89 TAB DC 256AL1(*-TAB)
0001A4 00000194 90 ORG TAB+240
000194 F0F1F2F3F4F5F6F7 91 DC C'1234567'

上面的 TAB 符号分配给 MLC 地址 0A4。在下一条指令中,ORG 将 MLC 设置为 TAB+240 地址位置,即 x'194'(~ x'A4' + 240 十进制)。基本上这个设置是设置一个长度为 256 和从第 240 个位置存储一些字符常量的表,以便我可以将它用于 TR 指令。

于 2016-02-15T07:07:58.750 回答
0

ORG 表示源 ORG 用于微处理器和微控制器编程中的特定寻址。

例如:

.org 0000H

这意味着我们要从0000H地址开始我们的程序。

于 2020-11-01T14:21:09.990 回答
-5

它是您希望将二进制程序加载到的内存位置(如果有)。

我不喜欢使用 org,而只是直接向硬件发出操作码/值。您始终可以将值存储在 ax 中并在 bx、cx、dx 之间传输。

我正在编写自己的汇编程序来输出操作码/值,而不必担心在执行之前先将其发送到内存,

仅在读取操作码时就地执行操作码要快得多,而不是尝试将它们缓存到内存中,否则可能会导致堆栈过载,从而烧毁您的 CPU

于 2012-05-27T01:58:50.933 回答