当前课程知识点:单片机原理及应用 >  4 汇编语言程序设计 >  4.5 顺序程序举例 >  顺序程序举例

返回《单片机原理及应用》慕课在线视频课程列表

顺序程序举例在线视频

顺序程序举例

下一节:单重分支结构

返回《单片机原理及应用》慕课在线视频列表

顺序程序举例课程教案、知识点、字幕

同学

你好

今天我们将继续顺序结构程序编写的介绍

我们将看一道稍微复杂一点的例题

如PPT所示

请同学们编程实现三字节无符号数的相加

其中被加数在内部RAM的

50H 51H和52H单元中

那么加数在内部RAM的53H 54H

和55H地址的单元中存放

要求把相加之结果

把加的和存放在内部RAM的50H 51H

和52H地址对应的单元中

这个进位的结果存放在位寻址区的00H

我们在PPT中都已经用图形的方式

展示了被加数和进位标志位存放的具体位置

数据一定要注意是在内部RAM中存放

如图所示的存放的方式

好的

我们也给出了三字节无符号相加的

具体的程序

我们整个程序采用的是顺序结构来编写的

同学们可以看一看

先看一看整个程序

因为这个是两个三字节数据相加

我们前面说过51单片机它是八位机

一条加法指令只能

实现两个单字节数据的相加

所以我们把整个程序可以看作是

四个部分

第一个部分是实现低字节的相加

第二个部分实现中间字节的加法

第三个部分实现高字节的加法

最后一部分就是处理高字节加法的进位位

程序中用R0和R1来作为

被加数和加数取数指针

下面我们就一起来看一看这个程序的

每一条指令的具体的功能

首先我们看第一条指令

MOV R0 , #52H

这条指令的功能相当于

是给工作寄存器R0赋初值52H

第二条指令MOV R1,#55H

该条指令利用MOV传送指令

实现把立即数55H赋给工作寄存器R1

相当于给R1赋初值55H

第三条指令MOV A ,@R0

这里面的@R0就是一个寄存器的间接寻址

因为R0里面的内容是52H

注意这是一个地址了

把52H这个地址所对应的

RAM单元的数据取出来送给累加器A

然后就是ADD A ,@R1

R1里面内容也赋了初值是55H

相当于就是把累加器A的内容

加上R1 55H加数的低字节的

RAM中的注解取出来相加

把结果再送给累加器A

前四条指令就实现了

三字节数的第一字节的相加

再来看

MOV @ R0, A

就是把低字节的加法的结果再存到

R0所指向的RAM单元中存放

下面的两条指令

DEC R0 DEC R1

DEC是自减

把R0自减一个1

减的结果才会回存到R0

就实现R0和R1的自减1

未取加数和被加数中间字节的数来做准备

下面就是

MOV A, @ R0

ADDC A,@R1

R1就是实现中间字节的带进位位的相加

因为中间字节在相加时要考虑

第一字节加法的进位

然后用MOV @R0 , A

就实现了把中间字节相加结果的回存

注意一下

@R0 是一个寄存器的间接寻址

所以这个结果并不是存到R0中

而是存到二零所指向的RAM单元中

然后再就是DEC R0, DEC R1

自减1实现为高字节的取数做准备

后面的几条指令类似于前面的

就实现高字节的相加

也是要带ADDC带进位位

因为高字节相加时

这个要考虑到中间字节的进位

等实现了高字节相加之后

我们最后来看一看

那么最高字节的进位的存储

首先CLR A 把A清零

然后ADDC A, # 00H

相加目的是要

把高字节相加的进位位加进来

存到累加器A的最低位

相当于这条指令执行完之后

累加器A的最低位里面是高位进位的结果

然后再利用一个MOV R0 , #20H

把R0的这个地址

送给工作寄存器R0

最后MOV @R0 , A

A里面的最低位是进位标志位

R0中是20H

送到RAM的20H单元去存放

由于我们的位地址00H

我们可以看到PPT中

实际上就是在20H单元的最低位

所以你利用MOV @R0 , A

就实现了把进位标志位

存放到位地址00H的单元

也就是单元地址20H这个单元的最低位

好的

今天我们用了一个三字节无符号数相加的程序

介绍了同学们能够明白这个顺序程序的执行过程

顺序程序比较简单

它的程序是一条一条的顺序执行

通过这个例题同学们也能够体会到

在进行汇编源程序编写中

你一定要对我们前面介绍的

这些机器指令要十分的熟悉

如果有些指令如果你还不十分熟悉

请你下去之后

要仔细的再去看一看这些指令的功能

好的

今天的课就到这里

同学们再见

单片机原理及应用课程列表:

1 单片机系统概述

-1.1 单片机的名称

--单片机的名称

-1.2 单片机的相关概念

--单片机的相关概念

-1.3 单片机的设计语言及软件

--单片机的设计语言及软件

-1.4 单片机的发展

--单片机的发展

-1.5单片机的应用

--单片机的应用

-1.6 第一单元作业

2 单片机的硬件结构

-2.1 单片机的结构框图

--单片机的结构框图

-2.2 80C51内部结构

--80C51内部结构

-2.3 信号引脚

--信号引脚

-2.4 内部数据存储器RAM

--内部数据存储器RAM

-2.5 特殊功能寄存器

--特殊功能寄存器

-2.6 堆栈

--堆栈

-2.7 内部程序存储器ROM

--内部程序存储器ROM

-2.8 存储器的结构特点

--存储器的结构特点

-2.9 并行输入输出接口电路

--并行输入输出接口电路

-2.10 并口功能与时序

--并口功能与时序

-2.11 工作方式

--工作方式

-2.12 最小应用系统

-- 最小应用系统

-2.13 第二单元作业

3 指令系统

-3.1 指令格式

--指令格式

-3.2 立即寻址与直接寻址

--立即寻址与直接寻址

-3.3 寄存器寻址与寄存器间接寻址

--寄存器寻址与寄存器间接寻址

-3.4 变址间接寻址与位寻址

--变址间接寻址与位寻址

-3.5 内部RAM传送指令

--内部RAM传送指令

-3.6 外部RAM传送指令

--外部RAM传送指令

-3.7 ROM传送指令

--ROM传送指令

-3.8 交换指令

--交换指令

-3.9 堆栈操作指令

--堆栈操作指令

-3.10 传送类指令习题讲解

--传送类指令习题讲解

-3.11 算术运算类指令特点

--算术运算类指令特点

-3.12 加法指令

--加法指令

-3.13 加法习题、减法和乘除指令

--加法习题、减法和乘除指令

-3.14 逻辑运算指令

--逻辑运算指令

-3.15 布尔变量操作指令

--布尔变量操作指令

-3.16 无条件转移指令

--无条件转移指令

-3.17 条件转移指令

--条件转移指令

-3.18 循环转移指令

--循环转移指令

-3.19 子程序相关指令

--子程序相关指令

-3.20 并口访问指令及指令小结

--并口访问指令及指令小结

-3.21 第三单元作业

4 汇编语言程序设计

-4.1 汇编程序约定

--汇编程序约定

-4.2 宏指令

--宏指令

-4.3 汇编控制指令

--汇编控制指令

-4.4 汇编语言程序设计步骤

--汇编语言程序设计步骤

-4.5 顺序程序举例

-- 顺序程序举例

-4.6 单重分支结构

--单重分支结构

-4.7 多重分支结构

--多重分支结构

-4.8 单重循环结构

--单重循环结构

-4.9 计数控制循环程序

--计数控制循环程序

-4.10 特征控制循环程序

-- 特征控制循环程序

-4.11 多重循环程序

--多重循环程序

-4.12 子程序的概念

--子程序的概念

-4.13 子程序设计注意事项

--子程序设计注意事项

-4.14 子程序举例

--子程序举例

-4.15 第四单元作业

5 单片机存储器扩展

-5.1 系统扩展

--系统扩展

-5.2 51单片机扩展方法

--51单片机扩展方法

-5.3 存储器单元位数扩充方法

--存储器单元位数扩充方法

-5.4 存储器容量单元扩充方法

--存储器容量单元扩充方法

-5.5 译码线选法

--译码线选法

-5.6 程序存储器的类型

--程序存储器的类型

-5.7 程序存储器的扩展

--程序存储器的扩展

-5.8 数据存储器的扩展

--数据存储器的扩展

-5.9 存储器综合扩展

--存储器综合扩展

-5.10 单片机存储器系统的特点

-- 单片机存储器系统的特点

-5.11 第五单元作业

6 中断与定时系统

-6.1 中断技术

--中断技术

-6.2 中断优先级及中断系统内部结构

--中断优先级及中断系统内部结构

-6.3 中断控制寄存器及中断响应过程

--中断控制寄存器及中断响应过程

-6.4 中断请求的撤消

--中断请求的撤消

-6.5 外部中断举例

--外部中断举例

-6.6 定时器/计数器

--定时器/计数器

-6.7 定时计数器工作方式及程序编写

--定时计数器工作方式及程序编写

-6.8 定时器举例

--定时器举例

-6.9 第六单元作业

7 I/O扩展及应用

-7.1 并行接口

-- 并行接口

-7.2 并口举例

--并口举例

-7.3 并口扩展芯片

--并口扩展芯片

-7.4 8155连接方式及编程

--8155连接方式及编程

-7.5 键盘接口技术

--键盘接口技术

-7.6 按键处理程序及举例

--按键处理程序及举例

-7.7 键盘扫描子程序

-- 键盘扫描子程序

-7.8 显示接口技术

--显示接口技术

-7.9 多位字符静态显示

--多位字符静态显示

-7.10 多位字符动态显示

--多位字符动态显示

-7.11 第七单元作业

8 单片机实验

-8.1 流水灯控制系统设计

--html

-8.2 数码管显示系统设计

--html

-8.3 按键控制系统设计

--html

-8.4 中断控制系统设计

--html

-8.5 定时计数器系统设计

--html

-8.6 串口通信系统设计

--html

-8.7 汉字显示系统设计

--html

-8.8 单片机烧录方法

--单片机烧录方法

-8.9 第八章作业-作业

顺序程序举例笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。