汇编语言伪指令详解(附实例)

汇编语言伪指令详解(附实例)伪指令不是真正的指令 并没有与之对应的的机器码 不会被执行 伪指令所起的作用主要是对汇编过程进行控制 常见的伪指令如下所示 目录 1 ORG 汇编起始指令 2 END 汇编结束命令 3 EQU 赋值指令 4 DB 字节定义伪指令 5 DW 定义字命令 6 DS 定义存储空间指令 7 BIT 位地址符号命令功能 规定该伪指令下面的目标程序的起始地址格式 ORG16 位地址举例 ORG0080H 表示下面的程序从地址 0080H 开始

伪指令不是真正的指令,并没有与之对应的的机器码,不会被执行。伪指令所起的作用主要是对汇编过程进行控制。

常见的伪指令如下所示:

目录

(1)ORG———汇编起始指令

(2)END——汇编结束命令

(3)EQU——赋值指令

(4)DB——字节定义伪指令

(5)DW——定义字命令

(6)DS——定义存储空间指令

(7)BIT——位地址符号命令


(1)ORG———汇编起始指令

     功能:规定该伪指令下面的目标程序的起始地址

     格式:ORG  16位地址

     举例:

           ORG 0080H    ;表示下面的程序从地址0080H开始

     ST:……

           ORG 0100H

            ……

  • 注意:ORG命令按出现的顺序其后的地址必须增大,且不能重叠。否则编译器可能报错。比如上例中0100H就大于0080H。

(2)END——汇编结束命令

         该伪指令是汇编语言结束的标志,对于在END之后的汇编指令不予处理。一个汇编程序可以有多个ORG伪指令,但是只可以有一个END指令,否则编译器会报错。

              ORG 0000H    ;单片机复位后便从0000H取指令

              AJMP START   ;跳转到程序的真正开始地址

              ORG 0003H    ;外部中断0的入口地址

              AJMP SER_INT0   ;该指令用于跳转到外部中断0中断服务程序

              ORG 000BH  ;定时器中断入口

              AJMP SER_TIMER0 ;跳转到定时器T0的中断服务程序

             ………………..

              ORG 0030H

   START: …………  ;程序的开始

                …………

   SER_INT0:

                …………

              RETI      ;用于中断返回

   SER_TIMER0:

                …………

              RETI      ;用于中断返回

              END       ;汇编指令结束标志

(3)EQU——赋值指令

    格式:字符名称   EQU  数或特定的符号

    功能:将一个常数或一个特定的符号赋给规定的字符名称。当汇编程序遇到EQU前面的字符名称后,便会用EQU后面的数(或特定的符号)代替。

        例如: CC EQU R1

                  DD EQU #11H

                  MOV CC,DD ;此指令与MOV R1,#11H一致。

注意:字符名称不是标号,后面不需要“:”。

(4)DB——字节定义伪指令

  • 格式: 标号:DB 数据项     ;数据项之间用逗号隔开
  • 功能:从该地址开始,在程序存储器中定义一串字节单元,并用数据项进行赋值。

        例:       ORG 0400H

            TAB:DB 80H,95H,74H

     则经过编译后,程序存储器中:(0040H)=80H,(0041H)=95H,(0042H)=74H。

  • 该指令常常放在程序的最后,用于开辟表格。

(5)DW——定义字命令

  • 格式:标号: DW 数据项
  • 功能:从该地址开始,在程序存储器中定义一串字单元,并用数据项进行赋值。先存高字节,后存低字节,即:高字节放在低地址,低字节放在高地址

          例:   ORG 0080H

          TAB:DW 08H,7799H,1234H

       经过编译后,程序存储器中:

        (0080H)=00H,(0081H)=08H,

        (0082H)=77H,(0083H)=99H,

        (0084H)=12H,(0085H)=34H。

(6)DS——定义存储空间指令

  • 格式:DS 表达式
  • 功能:从该指令地址开始,保留DS之后表达式的值所规定的存储单元,以备后用。

    例:   ORG 0090H

             DS  5

             DB 50H

 汇编后,从0090H开始保留5个存储单元,而(0095H)=50H

(7)BIT——位地址符号命令

  • 格式: 字符名称  BIT 位地址
  • 功能:将位地址赋予所规定的字符名称。

       例   LEFT    BIT  P1.0

              RIGHT BIT  P1.1

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/176715.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月26日 下午9:14
下一篇 2026年3月26日 下午9:14


相关推荐

  • 知识图谱—知识推理综述(一)[通俗易懂]

    知识图谱—知识推理综述(一)[通俗易懂]知识图谱—知识推理综述(一)1知识推理的概念以及分类1.1知识推理的基本概念所谓的知识推理,就是在已有知识的基础之上,推断出未知的知识的过程。通过从已知的知识出发,通过已经获取的知识,从中获取到所蕴含的新的事实,或者从大量的已有的知识中进行归纳,从个体知识推广到一般性的知识。根据上面的概念的描述,我们可以知道,对于知识推理而言,其包括的内容可以分为两种,第一种是我们已经知道的,用于进行推理的已有知识,另外一种是我们运用现有的知识推导或者归纳出来的新的知识。对于知识而言,其形式是多种多样的,可以是

    2022年6月10日
    49
  • c++windows内核编程笔记day12 硬盘逻辑分区管理、文件管理、内存管理[通俗易懂]

    c++windows内核编程笔记day12 硬盘逻辑分区管理、文件管理、内存管理

    2022年1月22日
    53
  • navicat激活码最新【2021.8最新】

    (navicat激活码最新)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

    2022年3月26日
    54
  • 联合体c语言指针,C语言联合体

    联合体c语言指针,C语言联合体像结构体一样 联合体 Union 在 C 语言中是一个用户定义的数据类型 用于保存不同类型的元素 但它并不占所有成员的内存总和 它只占最大成员的内存 它分享最大成员的内存 联合体优点它占用较少的内存 因为它只占最大的成员的内存量 联合体缺点它将数据存储在一个成员中 定义联合体 union 关键字用于定义联合体 下面我们来看看如何在 C 语言中定义联合体的语法 unionunion name data ty

    2026年3月18日
    4
  • 正则表达式常见用例

    正则表达式常见用例

    2022年3月12日
    53
  • fstream的用法_fun 的用法

    fstream的用法_fun 的用法在C++中输入输出到指定文件,或者从指定文件中读出数据使用fstream类较为方便。C++中处理文件类似于处理标准输入和标准输出。类ifstream、ofstream(向文件中写入)和fstream分别从类istream、ostream和iostream派生而来。作为派生的类,它们继承了插入和提取运算符(以及其他成员函数),还有与文件一起使用的成员和构造函数。可将文件<fstream&gt…

    2026年1月23日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号