Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >汇编语言伪指令详解(附实例)

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

作者头像
timerring
发布于 2022-07-20 06:51:48
发布于 2022-07-20 06:51:48
1.6K0
举报
文章被收录于专栏:TechBlogTechBlog

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

常见的伪指令如下所示:

目录

(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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-07-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
8051指令集和汇编语言程序设计
MOV(Move):对内部数据寄存器RAM和特殊功能寄存器SFR的数据进行传送;(没有MOV Rn,Rn这样的寻址方式) MOVC(Move Code)读取程序存储器数据表格的数据传送;(只有两条:MOVC A,@A+DPTR和MOVC A,@A+PC) MOVX (Move External RAM)对外部RAM的数据传送; XCH (Exchange) 字节交换; XCHD (Exchange low-order Digit) 低半字节交换; PUSH (Push onto Stack) 入栈; POP (Pop from Stack) 出栈;
zy010101
2019/05/25
1.5K0
浅谈单片机中C语言与汇编语言的转换
一、单片机课设题目要求与软件环境介绍 做了一单片机设计,要用C语言与汇编语言同时实现,现将这次设计的感受和收获,还有遇到的问题写下,欢迎感兴趣的朋友交流想法,提出建议。 单片机设计:基于51单片机的99码表设计 软件环境:Proteus8.0 + Keil4 要求:1,开关按一下,数码管开始计时。2,按两下,数码管显示静止。3,按三下,数码管数值清零。 二、C语言程序 1 #include<reg51.h> 2 #define uint unsigned int 3 #define uchar uns
Zoctopus
2018/06/04
2.5K0
第四章.汇编语言程序格式
ADR1 EQU DS : [BP+14] ADR1被定义为在DS数据段中以BP作基址寻址的一个存储单元。
cheese
2023/10/25
1.1K0
第四章.汇编语言程序格式
汇编语言--高级汇编技术
因为EQU和=都是针对常量进行操作,因此这些值在编译时就可以确定下来,不会等待运行时再去通过cpu来确定
大忽悠爱学习
2022/07/12
1.7K0
汇编语言--高级汇编技术
汇编语言期末复习不挂科——知识点总结
数据的表示和类型 二进制:二进制的表示元素是0和1,书写时,在数据后面紧跟一个字母B,如:0101B 八进制:八进制的表示元素是:0-7,书写时,在数据后面紧跟字母Q,如1234Q 十六进制:基本元素是0-9,A-F,其中A-F依次代表10-15 ▮书写时,数据后面紧跟字母H,当十六进制的第一个字符是字母时,在其前面必须添加一个“0” 寄存器 16位寄存器:
全栈程序员站长
2022/07/31
1K0
汇编语言期末复习不挂科——知识点总结
51单片机学习 并行口实验、流水灯、双闪灯
掌握 51 汇编语言设计和调试方法 掌握 protues 软件平台及实验箱的操作步骤
叶庭云
2021/12/01
1.3K0
51单片机学习   并行口实验、流水灯、双闪灯
收藏夹吃灰版!汇编语言快速入门(非常详细)
汇编语言程序以段为单位进行书写,一般把数据定义在数据段里,程序写在代码段中。下面给出段的定义语法:
C语言与CPP编程
2024/06/08
3330
收藏夹吃灰版!汇编语言快速入门(非常详细)
单片机中步进电机c语言程序,用AT89C51单片机控制步进电机的汇编源程序
下面程序完成的主要功能:实现步进电机的正反转,加速、减速;显示电机转速(转速级别)和工作状态(正转、反转、不转)。
全栈程序员站长
2022/08/30
1.1K0
设计分享|基于51单片机的数字时钟(汇编)
上电后滚动显示年、月、日、时、分,最后进入秒计时,通过四个按键可对时间进行设置操作。
电子工程师成长日记
2022/07/27
1.5K0
设计分享|基于51单片机的数字时钟(汇编)
汇编基础
​ cup与所有内存之间:地址总线,数据总线,控制总线,每条线对应不同信息,指令与数据分开
Dean0731
2020/08/17
1.5K0
汇编语言第三版答案(王爽)
汇编语言答案(王爽)  此文只是用来存个档,不喜勿喷 检测点1.1 (1)1个CPU的寻址能力为8KB,那么它的地址总线的宽度为 13位。 (2)1KB的存储器有 1024 个存储单元,存储单元的编号从 0 到 1023 。 (3)1KB的存储器可以存储 8192(2^13) 个bit, 1024个Byte。 (4)1GB是 1073741824 (2^30) 个Byte、1MB是 1048576(2^20) 个Byte、1KB是 1024(2^10)个Byte。 (5)8080、8088、80296、80
Angel_Kitty
2018/04/17
2.5K0
未整理的计组复习笔记?
计组是我听过的最脑阔疼的课。不过已经考过了orz以及,大家学的计组内容可能不一样,这篇复习包括的内容应该是比较简略的。
gojam
2019/05/14
1.2K0
【汇编语言】直接定址表(一)—— 「从单元标号到跨段数据:解锁汇编语言的隐藏技巧」
比如:下面的程序将code 段中的a标号处的8个数据累加,结果存储到b标号处的字中。
Crossoads
2025/01/20
1910
设计分享|单片机交通灯仿真(汇编)
(1)东西红灯60S倒计时,南北绿灯40S倒计时,东西向人行道红灯,南北向人行道绿灯;
电子工程师成长日记
2022/07/27
8110
设计分享|单片机交通灯仿真(汇编)
汇编语言程序设计技巧详解(附例题)
【例】将R0单元内的两位BCD码拆开并转换成ASCII码,存入RAM两个单元中R2 (存高位)和R1 (存低位)中 。
timerring
2022/07/20
1.4K0
汇编语言程序设计技巧详解(附例题)
汇编语言_汇编语言程序
开头和结尾的两句代表伪指令 只有编译器可以读懂 汇编指令可以被翻译为机器码最终被cpu执行 汇编程序 就是包含汇编指令和伪指令的文本 mov ax,4c00h int 21h 跟C语言程序的return 0一样 返回控制权 一个汇编程序是由多个段组成的 这些段被用作各种空间来使用 一个有意义的汇编程序至少需要一个段 且每个段都需要段名 段名 segment--段的开始 段名 ends--段的结束 assume假设 含义是假设某一段寄存器和程序中我们定义的段名关联起来 可以理解为和变量的引用一个意思
用户7272142
2023/11/14
3520
汇编语言_汇编语言程序
arm汇编指令详解带实例_汇编buf指令
两个 S 用于不同的指令,名称相同,但是在不同的指令结合却有不同的作用
全栈程序员站长
2022/11/04
1.5K0
汇编指令大全
 80×86指令系统,指令按功能可分为以下七个部分。   (1) 数据传送指令。   (2) 算术运算指令。   (3) 逻辑运算指令。   (4) 串操作指令。   (5) 控制转移指令。   (6) 处理器控制指令。   (7) 保护方式指令。 3.3.1数据传送指令   数据传送指令包括:通用数据传送指令、地址传送指令、标志寄存器传送指令、符号扩展指令、扩展传送指令等。   一、通用数据传送指令   1传送指令   传送指令是使用最频繁的指令,格式:MOV DEST,SRC   功能:把一个字节,字或双字从源操作数SRC传送至目的操作数DEST。   传送指令允许的数据流方向见图311。
全栈程序员站长
2022/09/06
1.5K0
大学课程 | 《微机原理与接口技术》笔记
数据定义伪指令(1)用于定义数据区中变量的类型及其所占内存空间大小(2)DB(Define Byte):定义的变量为字节型(3)DW (Define Word) :定义的变量为字类型(4)DD (Define Double Word) :定义的变量为双字型(5)DQ (Define Quadword) :定义的变量为4字型(6)DT (Define Tenbytes) :定义的变量为10字节型
Justlovesmile
2021/12/14
4.1K0
大学课程 | 《微机原理与接口技术》笔记
汇编语言---大小写字母转换
介绍 汇编语言组成 汇编指令:机器码的助记符,有对应的机器码。 伪指令:没有对应的机器码,编译器执行,机器不执行。 其他符号:如+-*/有编译器识别,无对应机器码。 要求 现要将字符串中的全部大写字母转换成小写字母,并存放回原地址处,试编程实现 编辑程序 DATA SEGMENT STRING DB 'BaHuYang' LEN EQU $-STRING DATA ENDS CODE SEGMENT ASSUME DS:DATA,CS:CODE START:
跋扈洋
2021/02/02
2K0
汇编语言---大小写字母转换
相关推荐
8051指令集和汇编语言程序设计
更多 >
加入讨论
的问答专区 >
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档