Chapter3:汇编语言程序设计

Chapter 3 汇编语言程序设计

3.1 概述

3.1.1 单片机有两种编程语言(源程序)

  • 汇编语言高级语言(主要是 C语言)。
    • 汇编语言的目标程序占用存储空间小,执行快,能充分发挥计算机硬件功能。(第3章 要求)
    • 高级语言编程快捷,但程序占用存储空间大,执行的实时较差。(第4章 C语言-不要求)
  • 无论是高级语言还是汇编语言,源程序都要转换成**目标程序(机器语言)**计算机才能执行。

3.1.2 单片机的目标程序有两种格式(目标程序)

  • 51单片机的目标程序有两种格式:
    .BIN文件和 ·HEX文件
    .BIN文件是由编译器生成的二进制文件,是程序的机器码。
    ·HEX文件是用ASCII码来存储,显示打印较方便。
    在这里插入图片描述

3.1.3 汇编(编译)的两种方法:

  • 汇编和编译:

    • 将汇编语言源程序转换成目标程序的过程称为 汇编
    • 将高级语言源程序转换成目标程序的过程称为 编译
  • 汇编(编译)的方法有两种:

    1. 手工汇编:
      人工查指令表,查出每条指令对应的机器代码。早期的计算机使用。
    2. 机器汇编:
      用计算机中的汇编器(A51)对源程序进行汇编。 用机器汇编要提供给汇编程序一些信息和约定。这些由伪指令指定。
  • 机器汇编:

    • 目前很多公司将编辑器、汇编器、编译器、连接/定位器等做成集成软件包,用户进入该集成环境,编辑好程序后,只需点击相应菜单就可以完成上述的各步,并且还有仿真调试功能
    • Keil 、Proteus等软件(见教材第 13 章)

3.2 伪指令(7个)

  • 伪指令为汇编程序(汇编器)提供信息的指令,它没有机器码,不被计算机执行。

  • 常用伪指令(7个)【详细见ppt】

    序号指令功能
    1ORG起始指令,定义程序或数据块的起始地址
    2DB字节定义,指示以标号为起始地址的单元里存放的数为字节数据
    3DW字定义,指示以标号为起始地址的单元里存放的数为字数据
    4DS保留字节,指示在程序存储器中保留以标号为起始地址的若干字节单元
    5EQU等值指令,表示EQU两边的量等值,用于为标号或标识符赋值
    6BIT位定义,标号,同EQU指令,不过定义的是位操作地址
    7END汇编结束

3.3 顺序程序设计

在这里插入图片描述
在这里插入图片描述

3.4 分支程序设计

*其余例子看ppt
在这里插入图片描述

3.5 循环程序设计

*其余例子看ppt
在这里插入图片描述

3.6 位操作程序设计(单片机特有)

位操作:可以方便实现各种复杂的逻辑运算,软件代替硬件,节省成本,但比硬件算的慢。
在这里插入图片描述

3.7 子程序设计

  • 子程序通过ACALL和LCALL两条指令调用,必须以RET指令结尾。
    子程序结构节省存储单元,使程序简短、清晰,是程序设计的重要技巧之一。

  • 在调用子程序时,有以下几点应注意:

    1)保护现场。
    2)设置入口参数和出口参数。
    3)子程序可以嵌套。

  • 例子:

    用程序实现 c = a2 + b2,设a,b均小于10。a存放在31H单元,b存放在32H单元,把 c 存入34H和33H单元。(和要求为BCD码)。
    在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值