一、伪指令

  1. 汇编语言指令类型
  • 机器指令:指令系统中的全部指令。每条机器指令都有对应的机器代码,可以被CPU执行。
  • 伪指令:汇编控制指令,没有指令代码,只用于汇编过程,为汇编程序提供汇编信息。
  1. 伪指令 常用伪指令及功能:
  • 起始指令 ORG nn
  • 字节定义 标号:DB(字节常数,或字符或表达式)功能:指示在程序存储器中以标号为起始地址的单元里存放的数为字节数据(八位二进制数)
  • 字定义 标号:DW(字常数或表达式)作用:指示在程序存储器中以标号为起始地址的单元里存放的数为字数据(即16位的二进制数)
  • 保留字节 标号:DS(数值表达式)作业:指示在程序存储器中保留以标号为起始地址的若干字节单元,其单元个数由数值表达式指定
    例如 L1:DS 32;从L1地址开始保留32个存储单元
  • 位定义 标号 BIT [位地址] 作用:同EQU指令,不过定义的是位操作地址
    例如 AIC BIT P1.1
  • 汇编结束 END

二、顺序程序设计

  1. 顺序程序(简单程序),程序走向只用一条路径
例:将R4R5双字节符号数求补程序。
ORG 1000H
MOV A,R5      ;取低字节
CPL A
ADD A, #1     ;低字节变补
MOV A,R4      ;取高字节
CPL A
ADDC A,#0     ;高字节变补
ORL A,#80H    ;恢复负号
MOV R4,A
END
  1. 分支程序设计
    由条件转移指令构成程序判断框部分,形成分支结构
  • 单分支程序
例 求8位有符号数的绝对值ORG 1000H
MOV A,R2
JNB ACC.7,N     ;为正数?
CPL A           ;负数变补
INC A
MOV R2,A
N:SJMP $        ;结束
  • 多分支散转程序的设计
    有一类分支程序,它根据不同的输入条件或不同的运算结果,转向不同的处理程序。这类程序通常利用JMP@A+DPTR间接转移指令实现转移。有如下两种设计方法
    (1)查转移地址表:
    将转移地址列成表格,将表格的内容作转移的目标地址。
    (2)查转移指令表:
    将转移到不同程序的转移指令列成表格,判断条件后查表,转到表中指令执行

三、循环程序设计

当程序中某些指令需要反复执行多次时,采用循环程序的方式,这样会使程序缩短,节省存储单元(并不节省执行时间)
循环次数的控制,有两种控制方法:

  • 第一种方法
    先判断在处理即先判断满不满足循环条件,如不满足,就不循环,多以循环条件控制。
  • 第二种方法
    先处理在判断,即循环执行一遍后,下一轮还需不需要进行,多以循环次数控制。

四、位操作程序设计

MCS-51单片机有着优异的位逻辑功能,可以方便的实现各种复杂的逻辑运算。这种用软件代替硬件的方法,可以大大简化甚至完全不用硬件,但比硬件要多花运算时间。

五、子程序

当一段程序需要多次应用,或为多人应用时,这段程序便为子程序。
子程序是构成单片机应用程序不可少的部分,通过ACALL和LCALL两条子程序调用指令,可以十分方便地用来调用任何地址处的子程序。
子程序必须以RET指令结尾

第四章 MCS-51单片机汇编语言程序设计相关推荐

  1. 51单片机汇编语言实验(三)-----定时/计数器实验(附参考代码及注释)

       本系列共6篇文章,本文作为本系列的第三篇文章,介绍实验三 :定时/计数器实验,本系列文章基于Dais-52PRO实验箱. 本系列文章链接: --------------------------- ...

  2. 80c51汇编语言程序设计,章4 80C51的汇编语言程序设计

    章4   80C51的汇编语言程序设计 1.80C51单片机汇编语言有何特点? 答: 汇编语言结构紧凑.灵活,汇编成的目标程序效率高,具有占存储空间少.运行速度快.实时性强等优点.它是面向机器的语言, ...

  3. 51单片机汇编语言实验(五)-----A/D 0809模数转换和DA0832数模转换实验(附参考代码及注释)

       本系列共6篇文章,本文作为本系列的第五篇文章,介绍实验五 :A/D 0809模数转换和DA0832数模转换实验,本系列文章基于Dais-52PRO实验箱. 本系列文章链接: ---------- ...

  4. c51单片机汇编语言语法错误,关于51单片机汇编语言一些注意事项

    电子信息类专业在大学必修的一门功课就是51单片机,这是最最基础的单片机,所以学好它很重要. 对单片机编程相对比较简单:1.用简单的C语言(不需要C++或C#的高级编程思想,只要你国家计算机等级考试二级 ...

  5. c51矩形波输出汇编语言,51单片机汇编语言编程:用定时器控制输出矩形波

    80C51单片机的时钟频率为12MHz,利用定时器T1和P1.0输出矩形脉冲. 波形只画出了2段:一段为100us 另一段为50us. 要完全的.完整的.详细的编写此程序的过程!谢谢 -------- ...

  6. C51汇编语言16进制加法,51单片机汇编语言带进位加法指令(4条)

    算术运算指令共有24条,算术运算主要是执行加.减.乘.除法四则运算.另外MCS-51指令系统中有相当一部分是进行加.减1操作,BCD码的运算和调整,我们都归类为运算指令.虽然MCS-51单片机的算术逻 ...

  7. 点亮两个发光管用c语言编辑,第二个试验:用单片机点亮一个闪烁的发光管-----51单片机汇编语言试验教程 - CSDN博客...

    第二个试验:用单片机点亮一个闪烁的发光管 一次我们的程序实在是没什么用,要灯亮还要重写一下片子,下面我们要让灯不断地闪烁,这就有一定的实用价值了,比如可以把它当成汽车上的一个信号灯用了.怎样才能让灯不 ...

  8. 带注释的c51汇编语言,51单片机汇编语言实现交通灯 代码有详细注释

    ORG 0000H;程序起始地址 LJMP START;初始化标号 ORG 0003H;外部中断地址--东西紧急按钮触发 LJMP DXJJ;东西紧急标号 ORG 0013H;外部中断地址--南北紧急 ...

  9. c51按键控制灯亮汇编语言,51单片机汇编语言编程进行按键控制

    硬件电路: P1.0 ~ P1.5 外接 6 个 LED,分别称为 D1 ~ D6,低电平发光. P0.0 ~ P0.3 外接 4 个 按键,分别称为 K1 ~ K4. P3.2 ~ P3.3 外接  ...

最新文章

  1. ganglia-介绍安装(二)
  2. 【机器学习】分类算法-K-近邻算法
  3. 从vuex源码分析module与namespaced
  4. 自己动手写游戏:飞机大战
  5. [渝粤教育] 西南科技大学 管理信息系统 在线考试复习资料(1)
  6. python mysql实例_Python使用MySQL数据库的方法以及一个实例
  7. 第二阶段第八天站立会议
  8. hibernate防止sql注入(转载)
  9. Mac如何在回收站中恢复丢失数据
  10. android84 广播接受者
  11. react 移动端 h5 端日历组件 周日历 月日历 周视图 月视图
  12. c语言 abs 不好用,c语言中 abs 和 fabs 不同吗?
  13. 浅谈sklearn中DBSCAN的欧式距离(Euclidean Distance)的计算
  14. WinMerge 过滤器用法
  15. Pytorch实现Bert模型
  16. Jetson Nano 硬件相关
  17. H3C交换机基础查询命令
  18. JVM 2eden survivor分配问题)
  19. 网络工程师月入五万难不难?
  20. CISP——关于网络安全法(分享笔记)

热门文章

  1. 比较两组数据的差异用什么图更直观_用好这11种可视化图表,数据可视化技能秒提升...
  2. 计算机excel教程,电脑安装excel教程的方法步骤详解
  3. 使用word文件制作ftl模板文件总结(靠谱)
  4. 网易云音乐歌单的推荐算法
  5. Opencv基于改进VGG19的表情识别系统(源码&Fer2013&教程)
  6. 【前端面试必读】实现图片16:9
  7. JSON字符串--对象之间的相关转换
  8. KEIL工程中汇编文件添加条件编译宏
  9. 论文阅读 点云动态图卷积(DGCNN)
  10. Proxy ARP--即ARP代理