版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1 第四节第四节 算术运算指令算术运算指令程序状态字寄存器程序状态字寄存器PSW各位的意义:各位的意义:CYACF0RS1RS0OV P进位位进位位 半进位位半进位位 溢出位溢出位 奇偶位奇偶位 用户标志用户标志 工作寄存器选择位工作寄存器选择位高位进位标志位高位进位标志位CY,简称,简称C: 反映算术运算时,最高位反映算术运算时,最高位D7向更高位有无进位或借位,向更高位有无进位或借位, 若有若有CY = 1;若无;若无CY = 0 。 1 1 0 1 1 0 1 0 0 0 1 0 0 1 1 1 1 + 1 0 0 0 0 0 0 1 - 1 0 0 0 0 0 0 0 1 0 0 1
2、1 0 1 0 1 1 1 0 0 1 1 1 1 CY = 1 有进位有进位 CY = 1 有借位有借位 2半进位标志半进位标志AC: 反映算术运算时,低半字节向高半字节有无进位或借位,若有反映算术运算时,低半字节向高半字节有无进位或借位,若有AC = 1;若无;若无AC = 0 。 1 0 1 0 1 1 0 1 1 0 1 0 0 1 0 1 + 1 0 1 0 1 0 0 0 - 0 0 0 1 1 0 0 0 1 0 1 0 1 0 1 0 1 1 0 0 0 1 1 0 1 D3位相加向位相加向D4位有进位位有进位 D3位相减向位相减向D4位有借位位有借位 AC = 1 CY =
3、1 AC = 1 CY = 0 溢出标志位溢出标志位OV: 反映运算的结果是否发生溢出,有溢出反映运算的结果是否发生溢出,有溢出OV = 1;无溢出;无溢出OV = 0 溢出的概念:溢出的概念:3 8位有符号数表示的范围:原码:位有符号数表示的范围:原码:-127+127 反码:反码:-127+127 补码:补码:-128+127 运算的结果超过此范围则发生溢出。运算的结果超过此范围则发生溢出。例例 120 + 105 = 225 0 1 1 1 1 0 0 0 + 0 1 1 0 1 0 0 1 1 1 1 0 0 0 0 1 结果为负数,结果为负数, 显然错误!显然错误! 符号位符号位 以
4、下将以下将D6向向D7的进位称为的进位称为C6,将,将D7向更高位的进位称为向更高位的进位称为C7。 此例中此例中 C7=0 ,C6=1, 有溢出,有溢出,OV=1 此例为数值位溢出侵犯符号位,发生错误。此例为数值位溢出侵犯符号位,发生错误。4 数值位溢出侵犯符号位有时也能得到正确的结果。数值位溢出侵犯符号位有时也能得到正确的结果。 又例又例 -3 + (-2) = -5 -3 -2 原码原码 1 0 0 0 0 0 1 1 1 0 0 0 0 0 1 0 反码反码 1 1 1 1 1 1 0 0 1 1 1 1 1 1 0 1 补码补码 1 1 1 1 1 1 0 1 1 1 1 1 1 1
5、 1 0 -3 + (-2) 1 1 1 1 1 1 0 1 + 1 1 1 1 1 1 1 0 1 1 1 1 1 0 1 1 -5的补码的补码 此例中此例中 C7=1 , C6=1 ,无溢出,结果正确。无溢出,结果正确。5总结溢出规律:总结溢出规律: C7 = 0 C6 = 0 数值位、符号位均无溢出,数值位、符号位均无溢出,OV = 0 C7 = 0 C6 = 1 数值位溢出侵犯符号位,数值位溢出侵犯符号位, OV = 1 C7 = 1 C6 = 0 符号位有溢出,符号位有溢出, OV = 1 C7 = 1 C6 = 1 数值位符号位均有溢出但结果正确,数值位符号位均有溢出但结果正确,O
6、V = 0 C7和和C6相同为相同为0,相异为,相异为1,符合异或运算法则:,符合异或运算法则: OV = C7 C6注意:溢出注意:溢出OV与进位与进位CY的区别。的区别。 CY主要用于无符号数的运算,主要用于无符号数的运算,OV主要用于有符号数的运算。主要用于有符号数的运算。6奇偶标志位奇偶标志位P: 反映累加器反映累加器A的内容中的内容中1的个数为偶数或奇数,的个数为偶数或奇数, 偶数个偶数个1 P = 0 ;奇数个;奇数个1 P = 1工作寄存器区选择位工作寄存器区选择位RS1、RS0 改变改变RS1、RS0的组态,可切换的组态,可切换Rn的不同工作区。前述。的不同工作区。前述。用户标
7、志用户标志F0:可视实际需要规定其意义。:可视实际需要规定其意义。7 一、一、 加法类指令:加法类指令:1.ADD A,第二操作数,第二操作数 ;(;(A)+(第二操作数)送(第二操作数)送A2.ADDC A,第二操作数,第二操作数 ;(;(A)+(第二操作数)(第二操作数)+(C)送)送A该指令影响该指令影响PSW中中CY, AC, OV, P标志位。标志位。例:例: MOV A , #05H 0 0 0 0 0 1 0 1 C=0 AC=1 ADD A , #3BH + 0 0 1 1 1 0 1 1 OV=0 P=1 0 1 0 0 0 0 0 0 ADDC A , #0F5H + 1
8、1 1 1 0 1 0 1 C=1 AC=0 0 0 1 1 0 1 0 1 OV=0 P=0 ADDC A , #70H + 0 1 1 1 0 0 0 0 + 0 0 0 0 0 0 0 1 C=0 AC=0 1 0 1 0 0 1 1 0 OV=1 P=0 83.増量指令:増量指令:INC 第一操作数第一操作数;指定单元内容加;指定单元内容加1,结果在原单元。,结果在原单元。例:例: INC A ;(;(A)+1 送送 A INC R0 ;(;(R0)+1 送送 R0注:该指令不影响注:该指令不影响PSW中标志位,例中标志位,例 INC A ; 分别运行这两条指令后,分别运行这两条指令后
9、,A的内容都加的内容都加1 ADD A,#01H ;但运行后;但运行后PSW的内容不同。的内容不同。9二、二、 减法类指令:减法类指令: 1.SUBB A,第二操作数,第二操作数 ;(;(A)-(第二操作数)(第二操作数)-(C)送)送 A该指令影响该指令影响PSW中中CY, AC, OV, P标志位。标志位。例:例: SETB C MOV A , #73H SUBB A , #86H ; (A) = ECH CY=1 AC=1 1 0 1 1 1 0 0 1 1 OV=1 P=1 - 1 0 0 0 0 1 1 0 1 1 1 0 1 1 0 1 再减再减C得得1 1 1 0 1 1 0 0
10、10注:注:减法指令没有不带借位的指令,注意使用该指令前减法指令没有不带借位的指令,注意使用该指令前C的内容,若的内容,若不需减不需减C ,则用,则用CLR C 指令清指令清C后再作后再作SUBB 。ADD ,ADDC ,SUBB 指令中,一个加数或被减数一定先存入指令中,一个加数或被减数一定先存入A,且结果也在且结果也在A里。里。2.减量指令减量指令 DEC 第一操作数第一操作数;指定单元内容减;指定单元内容减1,结果在原单元。,结果在原单元。例:例:DEC A ;(;(A)1送送 A注:该指令不影响注:该指令不影响PSW中标志位。中标志位。 11 例例 MOV R0 ,#50H 5 5 M
11、OV A,#55H + 7 F ADD A,#7FH D 4 C=0 MOV R0, A ; (50H)=D4H (R0) = 51H INC R0D 4 ADD A,#70H + 7 0 C = 1 MOV R0, A 1 4 4 (51H) = 44H (R0) = 52H INC R0 4 4 ADDC A,#22H + 2 2 MOV R0 ,A 6 6 再加再加C得得67H (52H)=67H C = 012 INC R0 (R0) = 53H SUBB A,#89H 6 7 MOV R0 ,A - 8 9 INC R0 D E C = 1 (53H)=DEH (R0)=54H SU
12、BB A,#0AFH D E MOV R0, A - A F C=0 2 F 再减再减C得得2EH (54H)=2EH 三、十进制加法调整指令三、十进制加法调整指令 DA A 1 0 0 1 0 1 1 0用于用于BCD码相加后结果的十进制调整。码相加后结果的十进制调整。+ 1 0 0 0 1 0 0 1 为什么要调整?为什么要调整? 例例 96 + 89=185 1 0 0 0 1 1 1 1 1 + 0 1 1 0 0 1 1 0 1 0 0 0 0 1 0 1 13调整的原则:调整的原则:1. 以半字节(以半字节(4位)为单位过位)为单位过9加加62. AC=1时低半字节加时低半字节加6
13、3. CY=1时高半字节加时高半字节加6例例 19 + 58 = 77 MOV A , #19H 0 0 0 1 1 0 0 1 ADD A , #58H + 0 1 0 1 1 0 0 0 DA A 0 1 1 1 0 0 0 1 MOV 50H , A + 0 0 0 0 0 1 1 0 0 1 1 1 0 1 1 114注:注: DA A 指令只能用于加法指令之后,对减法指令后的结果不能指令只能用于加法指令之后,对减法指令后的结果不能调整。调整。 DA A 指令必须在保持前面加法指令后的标志位不变时使用才指令必须在保持前面加法指令后的标志位不变时使用才能得到正确结果。能得到正确结果。 参
14、与相加的二数均为参与相加的二数均为BCD码,调整后得到正确的码,调整后得到正确的BCD码结果,码结果,不是将二或十六进制数的加法运算调整成十进制。不是将二或十六进制数的加法运算调整成十进制。 15四、乘法指令四、乘法指令 MUL AB操作:操作: 将将A,B两寄存器中的两个无符号两寄存器中的两个无符号8位二进制数相乘,积为位二进制数相乘,积为16位,其低位,其低8位存放于位存放于A,高,高8位存放于位存放于B。 若积不大于若积不大于8位(既位(既B的内容为的内容为0),则),则OV=0,否则,否则OV=1 乘法指令后,乘法指令后,CY=0 ,AC不变。不变。例例 169 = 144 MOV A
15、 , #10H MOV B , #09H MUL AB ; (A) = 90H (144D), (B) = 00H (OV) = 0 ,(CY) = 0, AC不变不变16又例又例 80160 = 12800 MOV A , #50H MOV B , #0A0H MUL AB ;(A) = 00H , (B) = 32H B0 (OV) = 1,(CY) = 0,AC不变不变五、除法指令五、除法指令 DIV AB 操作操作 : A B中均为无符号整数,中均为无符号整数,A除以除以B ,商的整数部分存于,商的整数部分存于A, 商的余数部分存于商的余数部分存于B。 运行后,运行后,CY=0 ,若除数(即,若除数(即B中内容)为中内容)为0,则商为不定值,且,则商为不定值,且OV=1,否则,否则OV=017例例
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五版环保烟气脱硫脱硝设备安装合同
- 《多民族的大家庭》课件
- 二零二五年度医疗设备采购与安装合同范本4篇
- 2025年度专业赛事场地及配套设施租赁服务合同4篇
- 2025年度农业贷款逾期还款催收保密协议4篇
- 2025年度个人信用卡透支借款合同范本3篇
- 2025年度智慧物流园区建设项目承包工程协议3篇
- 2025年智能化门楼维修保障及升级改造专项合同3篇
- 二零二五年度高校社团赞助合同书4篇
- 《合肥建业令翔项目》课件
- 2025年中国文玩电商行业发展现状调查、竞争格局分析及未来前景预测报告
- 2024文旅古街元旦沉浸式体验国风游园会(古巷十二时辰主题)活动方案活动-46正式版
- (课件)-谈研究生培养
- 《disc性格分析》课件
- 2025年临床医师定期考核必考复习题库及答案(900题)
- 反恐应急预案3篇
- 英语-2025广西柳州高三二模试卷和答案
- 微更新视角下老旧社区公共空间适老化设计策略研究
- 电工中级工练习题库(含参考答案)
- 骨科2025年度工作计划
- 学校帮扶工作计划
评论
0/150
提交评论