ORG 伪指令

素颜马尾好姑娘i 2022-05-30 09:07 298阅读 0赞

汇编地址计数器

汇编地址计数器用符号$表示,它用来记录正在被汇编程序翻译的语句的地址,即它的内容标示了汇编程序当前的工作位置。

在一个源程序中往往包含多个段。汇编程序在将该源程序翻译成目标程序时,每遇到一个新的段,就为该段分配一个初置为0的汇编地址计数器,然后,再对该段中的指令汇编。在汇编过程中,对凡是需要申请分配存储单元的变量和产生目标代码的指令,汇编地址计数器就按存储单元数和目标代码的长度增值。因此,段内定义的所有标号和变量的偏移地址就是当前汇编地址计数器$的值。

汇编地址计数器$也可以出现在表达式中。比如

  1. DATA SEGEMENT USE16
  2. BUF DB '12345ABCD'
  3. COUNT EQU $-BUF ;常量COUNT的值就是变量BUF数据区所占的存储单元数16字节
  4. DATA ENDS

org伪指令

汇编地址计数器的值可以用伪指令ORG设置,其格式是

ORG 数值表达式

功能是将汇编地址计数器设置成数值表达式的值。其中数值表达式的值应为0000H~FFFFH之间的整数(对于16位实模式)。
例如:

  1. DATA SEGMENT USE16
  2. ORG 10; ; 设置$10,此段目标代码从偏移地址10开始
  3. BUF DB 'ABCD' ; BUF的偏移地址为10
  4. ORG $+5 ; $增加5,即在ABCD之后空出5个字节
  5. NUM DW 50 ; NUM的偏移地址为19
  6. DATA ENDS

【完】

参考资料
[0] 《微机原理与接口技术》(朱定华,北方交通大学出本社,清华大学出版社)
[1] http://blog.csdn.net/yeweiouyang/article/details/8645153

发表评论

表情:
评论列表 (有 0 条评论,298人围观)

还没有评论,来说两句吧...

相关阅读

    相关 伪指令 .align 的含义

    伪指令 .align 的作用是在编译时指示编译器填充位置计数器(类似指令计数器)到一个指定的内存边界处,目的是为 了提高 CPU 访问内存中代码或数据的速度和效率。其完整格式为

    相关 [汇编]伪指令(二)

    \[汇编\]伪指令(二) 数据定义及存储器分配伪指令   80x86提供了各种数据及存储器分配伪指令,这些伪指令在汇编程序对源程序进行汇编期间,由汇编程序完成数据类

    相关 [汇编]伪指令(一)

    \[汇编\]伪指令(一)  段定义伪指令     段定义伪指令是表示一个段开始和结束的命令,80x86有两种段定义的方式:完整段定义和简化段定义,分别使用不同的段定义伪

    相关 ORG 伪指令

    汇编地址计数器 汇编地址计数器用符号$表示,它用来记录正在被汇编程序翻译的语句的地址,即它的内容标示了汇编程序当前的工作位置。 在一个源程序中往往包含多个段。汇编程序在

    相关 arm开发-伪指令

    伪指令 与指令系统的助记符不同,它没有对应的操作码。 伪指令在源程序中的作用是为完成汇编程序作各种准备工作,这些伪指令仅在汇编过程中起作用,一旦汇编结束,伪指令的使命就完成了

    相关 pragma伪指令

    pragma伪指令 通过pragma伪指令告诉编译器如何对待特定的函数、对象或代码段。TMS320C28x C/C++编译器支持如下形式的pragma伪指令:   CODE

    相关 Arm伪指令

    伪指令不是指令,伪指令和指令的根本区别是经过编译后会不会生成机器码。 伪指令的意义在于指导编译过程。 伪指令是和具体的编译器相关的,我们使用gun工具链,因此学习gun环境