当前课程知识点:单片机原理及应用 >  3 指令系统 >  3.13 加法习题、减法和乘除指令 >  加法习题、减法和乘除指令

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

加法习题、减法和乘除指令在线视频

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

下一节:逻辑运算指令

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

加法习题、减法和乘除指令课程教案、知识点、字幕

同学 你好

前面的话我们已经介绍过了加法指令

今天我们来看一道

实现多字节加法的例题

是实现双字节数X

存放在片内RAM的51H和50H单元

Y存放在片内RAM 52H和53H的单元

我们的程序想实现

X加Y把这个结果Z存放到片内RAM的

54H 55H 56H的三个单元

因为两个16进制相加结果可能超过16进制

结果我们可能必须要用三个单元来存放

由于51单片机本身是一个八位的单片机

它的一条加法指令只能实现

两个单字节八位二进制数的相加

如果要想进行例题中的两个双字节数相加

这就需要多用几次加法指令才行

按照这种思路例题中

我们先用一条不带进位的ADD加法指令

实现低字节数的相加

再用带进位加法指令ADDC实现高字节相加

带进位位的目的是要考虑低字节相加时

可能会向高位有进位

同时两个双字节数相加

结果可能会超过双字节

所以我们说必须要用三个字节

来存储最后的结果

并且的话最后也会用一条ADDC指令

来计算结果最高位及第三个字节的情况

具体的程序我们在PPT中已经列出

那么每条指令我们前面都已经讲过

注释我们也注释的非常详细

你可以按照我们刚才的提示自行分析

每条指令的功能

了解了加法指令之后

下面我们再来看一看减法指令

减法指令只有一个

是带借位的减法指令SUBB

具体的格式是

SUBB A , 源操作数

具体功能为把累加器A的内容减去源操作数

同时还要减去借位标志位Cy的值

然后再把减的结果回存到累加器A

并且改变PSW中相关标志位的值

我们再来看一看一道例题

设累加器A中原来的值是7AH

工作寄存器R2的值是7AH

Cy即为借位标志位开始进位

也可以借位

在减法中它叫借位标志位

那么Cy最开始是等于0

执行指令SUBB A , R2

请问累加器A的值是多少

借位标志为Cy的值是多少

溢出标志位OV的值是多少

奇偶标志位P的值是多少

半借位标志位AC的值是多少

该指令我们知道是实现

把累加器A的数据7AH

和工作寄存器R2中的数据7AH相减

同时还要减去借位标志为Cy的值 零

减的八位结果我们可以看到是二进制

全零00000000

也即16进制数的00H

这个结果会回存到累加器A

所以该条指令执行完之后

累加器A的内容是00H

同时在预算过程中

我们可以看到最高位并没有借位

所以CPU会把借位标志位Cy置为零

次高位也没有借位

所以根据OV我们前面说过溢出标志位

它是等于最高位借位与次高位借位的异或

所以OV也会被设为零

即结果没有溢出

第三位向第四位

我们看到也没有借位

所以半借位标志位AC也会被设为零

那么累加器A中的结果我们知道是00H

即没有零个1

所以是偶数个1

这样CPU也会把奇偶标志位P设为0

这就是减法指令

了解了减法指令之后

下面让我们再来看一看增量指令

INC单操作数

这条指令为单操作数指令

可以实现操作数自加一个1

并且结果会回存

类似的是减量指令

DEC也是单操作数

可以实现操作数的自减一个1结果也会回存

这两个指令执行过程中

并不会影响标志位的状态

最后我们来看一看乘法指令和除法指令

乘法指令是MUL AB

注意下AB中没有逗号

MUL AB 它为乘法指令

其功能为八位累加器A的内容

和寄存器B的内容相乘

我们知道两个八位数相乘结果一般会超过八位数

一般的话是16位

所以这个结果的低八位会自动回存到累加器A

而结果的高八位会回存到寄存器B

同时标志位Cy会自动的置0

当结果高字节B等于0时

标志位OV等于0

否则OV等于1

再来看一看除法指令

除法指令是DIV AB

该指令的功能是实现累加器A的内容

除以寄存器B的内容

结果中商会回存到累加器A

除法的余数会存到寄存器B

同时标志位Cy也是直接置0

当除数B等于0时

会把标志位置1

否则OV溢出位是零

我们同样的给出了两道例题来说明

乘法和除法的含义

我们看一看例题A

原来累加器A中的内容是96

十进制数96对应的16进制数就是60H

B中原来是192对应的16进制数是COH

请问执行完指令MUL AB后

累加器A的内容是多少

B是多少

Cy是多少

OV是多少

P是多少

这套指令实现的功能就是

实现96乘以192

等于18432

同学们要注意我们人是习惯于做十进制数的乘法的

但是在计算机里面它会把十进制数

转换成二进制数

用二进制来实现相乘

所以最终的结果18432

实际上会转换成4800H

我们是用16进制数来表示二进制的

相当于是4800H

4800H中低八位00H会送给累加器A存放

高八位的48H会送给累加器B来进行存放

Cy直接清零

由于B中结果是400H不为零

所以OV直接置为1

累加器A中是00H 0个1

所以奇偶标志位P是会置为零

这是乘法指令

我们再来看除法指令

这道例题

A的内容原来是151对应的16进制数的F1H

B寄存器的内容是对应的16进制数是ODH

当执行完除法指令DIV AB后

我们知道这个除法相当于是

151除以13

这个商是18 余数是7

一样的在计算机里面不会存储十进制数

会把它转化成二进制数来进行存储

所以151除以13商18对应的16进制数是12H

余数的7对应的16进制数是07H

商12H会在累加器A中来进行存放

余数07H会在B中来进行存放

Cy是直接置零

由于除数B,13并不为零

所以溢出位OV是直接置零

那么A中是12H

它里面是两个1

注意一下要转化成二进制数里面是两个1

偶数个1

所以奇偶标志位也是直接置零

好的

以上是我们对乘法除法指令的介绍

请同学们下去之后仔细的体会

这两条指令的功能

今天的课就到这里

同学们再见

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

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 第八章作业-作业

加法习题、减法和乘除指令笔记与讨论

也许你还感兴趣的课程:

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