3.4 算术运算类指令(课件)-《单片机技术与应用》(高教版第二版) 同步精品课堂

| 25页
| 111人阅读
| 1人下载
精品

内容正文:

单片机技术与应用 -第13课时- 高教版第二版 算术运算类指令 教学目标 了解算术运算类指令的数量、分类和主要功能 掌握各类算术运算指令的格式、操作功能、字节数和机器周期数 能够运用算术运算类指令进行编程,并分析程序执行结果 教学重难点 各类算术运算指令的功能和使用方法 算术运算结果对标志位的影响规律 理解进位、借位、溢出等标志位在不同运算中的变化 让我们一起开启单片机的学习之旅。 导入新课 在单片机编程中,算术运算是实现各种计算功能的基础。 视频中的计算器是如何实现算术运算的? MCS - 51 系列单片机有哪些算术运算类指令呢? 它们各自的功能和特点是什么? 让我们一起开启单片机的学习之旅。 新知讲授 概述 1. 算术指令包括加、减、乘、除基本四则运算 2. 在逻辑运算单元(ALU)中能进行加、减、乘、除、加1,减1,BCD数转十进制调整等 特点 算术运算类指令共有 24 条,包括加法、带进位加法、带借位减法、加 1、减 1、乘除及十进制调整指令,主要完成加、减、乘、除等运算及相关调整操作。 运算结果影响进位标志 CY、半进位标志 AC、溢出标志 OV 等,奇偶标志 P 由累加器 A 的值确定。 算术运算类指令 这组指令被加数总是累加器 A,相加结果保存在 A 中。 新知讲授 加法指令 ADD 目的:将第二操作数(XXX)与第一操作数(A)的内容进行相加,得到的结果存放在累加器A中; 第二操作数:寄存器Rn、直接地址direct、间接地址@Ri、立即数#data。 算术运算类指令 指令助记符 操作功能 字节数 机器周期数 ADD A,#data A←(A)+data 2 1 ADD A,Rn A←(A)+(Rn) 1 1 ADD A,@Ri A←(A)+((Ri)) 1 1 ADD A,direct A←(A)+(direct) 2 1 ADDC A,@Ri A←(A)+((Ri))+CY 1 1 ADDC A,direct A←(A)+(direct)+CY 2 1 这组指令被加数总是累加器 A,相加结果保存在 A 中。 这组指令被加数总是累加器 A,相加结果保存在 A 中。 新知讲授 加法指令 - 标志位影响规则 上述的指令会影响标志位P、OV、AC、CY位; 当和的第3位有进位则将AC位(辅助进位标志)置1; 当和的第7位有进位则将CY位(进位标志)置1; 由和的奇偶个1确定P置1还是清零,奇数个1置1,偶数个1清零; 溢出标记位OV只有带符号数运算时才有用; 对于带符号数来说,溢出标记位OV取值为 其和的第6位和第7位进行异或逻辑运算的结果 OV = 1表示两个正数求和结果为负数的错误结果 或 两个负数求和结果为正数的错误结果; 算术运算类指令 例 3 - 10:(A)=85H,(20H)=0FFH,CY = 1,执行指令 ADDC A,20H。 执行结果:(A)=85H,CY = 1,AC = 1,OV = 0,P = 1。 新知讲授 加法指令 - 示例 例 3 - 8:(A)=53H,(R0)=0FCH,执行指令 ADD A,R0。 执行结果:(A)=4FH,CY = 1,AC = 0,OV = 0,P = 1。 例 3 - 9:(A)=85H,(R0)=20H,(20H)=0AFH,执行指令 ADD A,@R0。 执行结果:(A)=34H,CY = 1,AC = 1,OV = 1,P = 1。 算术运算类指令 例3 - 10:(A)=85H,(20H)=0FFH,CY = 1,执行指令 ADDC A,20H。 执行结果:(A)=85H,CY = 1,AC = 1,OV = 0,P = 1。 这组指令被加数总是累加器 A,相加结果保存在 A 中。 新知讲授 带借位减法指令 SUBB 目的:将第一操作数(A)的内容减第二操作数(XXX)和进位CY三个数,得到的结果存放在累加器A中; 第二操作数:寄存器Rn、直接地址direct、间接地址@Ri、立即数#data; 算术运算类指令 指令助记符 操作功能 字节数 机器周期数 SUBB A,#data A←(A)-(data)-CY 2 1 SUBB A,Rn A←(A)-(Rn)-CY 1 1 SUBB A,@Ri A←(A)-((Ri))-CY 1 1 SUBB A,direct A←(A)-(direct)-CY 2 1 这组指令被加数总是累加器 A,相加结果保存在 A 中。 新知讲授 带借位减法指令 - 标志位影响规则 如果位 7 有借位,则 CY = 1,否则 CY = 0。 如果位 3 有借位,则 AC = 1,否则 AC = 0。 如果 D6 需借位,而 D7 不需借位,或者 D7 需借位,而 D6 不需借位,则 OV = 1,否则 OV = 0。 相减结果放在 A 中,1 的个数为奇数,则 P = 1,否则 P = 0。 算术运算类指令 目的:将累加器A和寄存器B中两个8位无符号数乘数,所得16位积的低8位存放在A中,高8位存放在B中,乘积大于0FFH,则将OV置1,否则清零,CY总是被清零 新知讲授 带借位减法指令 - 示例 例 3 - 11:(A)=C9H,(R2)=54H,CY = 1,执行指令 SUBB A,R2。 执行结果:(A)=74H,CY = 0,AC = 0,OV = 1。 算术运算类指令 乘法指令 指令助记符 操作功能 字节数 机器周期数 MUL AB (A)×(B)→BA 1 4 目的:将累加器A和寄存器B中两个8位无符号数乘数,所得16位积的低8位存放在A中,高8位存放在B中,乘积大于0FFH,则将OV置1,否则清零,CY总是被清零 目的:将累加器A和寄存器B中两个8位无符号数乘数,所得16位积的低8位存放在A中,高8位存放在B中,乘积大于0FFH,则将OV置1,否则清零,CY总是被清零 新知讲授 乘、除法指令 - 功能及标志位影响 乘法指令:把累加器 A 和寄存器 B 中的两个 8 位无符号数相乘,乘积 16 位数的低 8 位存于 A,高 8 位存于 B。若乘积大于 FFH,则 OV 置 1,否则 OV 清 0,CY 总为 0。 除法指令:把累加器 A 中的 8 位无符号整数除以寄存器 B 中的 8 位无符号整数,商存于 A,余数存于 B,CY 和 OV 均被清 0。若除数 B 内容为 0,OV 置 1,CY 仍为 0。 算术运算类指令 除法指令 指令助记符 操作功能 字节数 机器周期数 DIV AB (A)/(B)→A (商),余数→B 1 4 目的:进行A除以B的运算,整数存放在A中,余数存放在B中,CY、OV均被清零,若(B) = 0则结果无法确定 例 3 - 10:(A)=85H,(20H)=0FFH,CY = 1,执行指令 ADDC A,20H。 执行结果:(A)=85H,CY = 1,AC = 1,OV = 0,P = 1。 新知讲授 乘法指令 - 示例 例 3 - 12:设 (A)=32H,(B)=60H,执行指令 MUL AB。 执行结果:(A)=0COH,(B)=12H,CY = 0,OV = 1,P = 0。 算术运算类指令 除法指令 - 示例 例 3 - 13:(A)=8FH,(B)=32H,执行指令 DIV AB。 执行结果:(A)=02H,(B)=2BH,CY = 0,OV = 0。 这组指令被加数总是累加器 A,相加结果保存在 A 中。 新知讲授 加 1减 1 指令 Increment 目的:将指定的单元内容加1 目的操作数:累加器A、寄存器Rn、直接地址direct、间接地址@Ri、16位寄存器DPTR 算术运算类指令 指令助记符 操作功能 字节数 机器周期数 INC A A←(A)+1 1 1 INC Rn Rn←(Rn)+1 1 1 INC @Ri (Ri)←((Ri))+1 1 1 INC direct direct←(direct)+1 2 2 INC DPTR DPTR←(DPTR)+1 1 1 DEC A A←(A)-1 1 1 DEC Rn Rn←(Rn)-1 1 1 DEC @Ri (Ri)←((Ri))-1 1 1 DEC direct direct←(direct)-1 2 2 这组指令被加数总是累加器 A,相加结果保存在 A 中。 新知讲授 加 1、减 1 指令 - 功能及特点 加 1 指令:把操作数指定单元内容加 1,除奇偶标志外,不影响 PSW 标志位。若原单元内容为 FFH,加 1 后溢出为 00H。可对 I/O 端口进行 “读 - 改 - 写” 操作。 减 1 指令:将操作数指定单元内容减 1,除奇偶标志外,不影响 PSW 标志位。若原单元内容为 00H,减 1 后下溢为 FFH。对 I/O 端口操作与加 1 指令类似。 算术运算类指令 例 3 - 10:(A)=85H,(20H)=0FFH,CY = 1,执行指令 ADDC A,20H。 执行结果:(A)=85H,CY = 1,AC = 1,OV = 0,P = 1。 新知讲授 加 1、减 1 指令 - 示例 例 3 - 14:执行下列指令后,求 (30H) 和 (R0) 的值。 算术运算类指令 MOV R0,#30H MOV 30H,#54H INC @R0 INC R0 执行结果:(30H)=55H,(R0)=31H。 参考程序: 这组指令被加数总是累加器 A,相加结果保存在 A 中。 新知讲授 十进制调整指令Decimal Adjust 目的:将累加器中的数进行十进制调整 算术运算类指令 助记符 功能 对标志位影响 字节数 周期数 P OV AC CY DA A 调整累加器内容为BCD码 √ × √ √ 1 1 这组指令被加数总是累加器 A,相加结果保存在 A 中。 新知讲授 十进制调整指令 - 标志位影响规则 累加器低 4 位大于 9 或辅助进位位 AC = 1,则进行低 4 位加 6 修正。 累加器高 4 位大于 9 或进位位 CY = 1,则进行高 4 位加 6 修正。 累加器高 4 位为 9,低 4 位大于 9,则高 4 位和低 4 位分别加 6 修正。 BCD码:二进码十进数,用4位二进制数来表示1位十进制数中的0~9这10个数码; 当CY > 1或A4567 > 9则令 A + 60H -> A,就完成转化BCD码; 如果都满足3、4条件则加66H来完成BCD转化; DA常用于 ADD、ADDC指令后。 算术运算类指令 例 3 - 10:(A)=85H,(20H)=0FFH,CY = 1,执行指令 ADDC A,20H。 执行结果:(A)=85H,CY = 1,AC = 1,OV = 0,P = 1。 新知讲授 十进制调整指令 - 示例 例 3 - 15:对 BCD 码加法 65 + 58 → BDH 进行十进制调整。 算术运算类指令 MOV A,#65H ADD A,#58H DA A 执行结果:(A)=23BCD,(CY)=1,即 65 + 58 = 123。 参考程序: 随堂检测1 算术运算类指令共有多少条,包括哪些类型的指令? 答案:算术运算类指令共有 24 条,包括加法指令、带进位加法指令、带借位减法指令、加 1 指令、减 1 指令、乘除指令及十进制调整指令。 加法指令 ADD A,Rn 的操作功能是什么? 答案:将累加器 A 的内容与工作寄存器 Rn 的内容相加,结果存于累加器 A 中,即 A←(A)+(Rn)。 练一练 随堂检测2 带借位减法指令 SUBB A,direct 的操作功能是什么? 答案:从累加器 A 中减去 direct 单元的内容和借位位 CY 的值,差值存于累加器 A 中,即 A←(A)-(direct)-CY。 乘法指令 MUL AB 执行后,进位标志 CY 和溢出标志 OV 的情况如何? 答案:进位标志 CY 总为 0,若乘积大于 FFH,则溢出标志 OV 置 1,否则 OV 清 0。 练一练 随堂检测3 加 1 指令 INC A 和 ADD A,#01H 都将 A 中内容加 1,它们有什么区别? 答案:INC A 除奇偶标志外,不影响 PSW 中其他标志位;ADD A,#01H 会影响标志位 CY。 十进制调整指令 DA A 的作用是什么? 答案:用于对十进制数 BCD 码加法运算结果的内容修正,两个 BCD 码相加之后,必须经本指令的调整才能得到正确的结果。 练一练 师生互动 1 请各小组讨论,在实际编程中,如何根据不同的算术运算需求选择合适的算术运算类指令,以及如何正确处理运算结果对标志位的影响。 课题小结 1. 加法指令 算术运算类指令 2. 带借位减法指令 标志位影响规则 示例 3. 乘、除法指令 4.加 1、减 1 指令 5. 十进制调整指令 标志位影响规则 示例 标志位影响规则 示例 标志位影响规则 示例 标志位影响规则 示例 谢谢观看 THANKS UTC 2025-09-09 05:57:59 Lavf58.76.100 $

资源预览图

3.4  算术运算类指令(课件)-《单片机技术与应用》(高教版第二版) 同步精品课堂-第1页
1
3.4  算术运算类指令(课件)-《单片机技术与应用》(高教版第二版) 同步精品课堂-第2页
2
3.4  算术运算类指令(课件)-《单片机技术与应用》(高教版第二版) 同步精品课堂-第3页
3
3.4  算术运算类指令(课件)-《单片机技术与应用》(高教版第二版) 同步精品课堂-第4页
4
3.4  算术运算类指令(课件)-《单片机技术与应用》(高教版第二版) 同步精品课堂-第5页
5
3.4  算术运算类指令(课件)-《单片机技术与应用》(高教版第二版) 同步精品课堂-第6页
6

由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。