计算机导论 算术运算逻辑运算优秀课件.ppt
计算机导论 算术运算逻辑运算第1页,本讲稿共39页目目 录录 6.3.1 加减指令加减指令6.3.3 乘除指令乘除指令 6.3.4 十十进进制制调调整指令整指令2第2页,本讲稿共39页加1/减1指令加减指令加法指令减法指令加减指令3第3页,本讲稿共39页加法指令1111(A)(A)+(Rn)ADD A,(A)(A)+(direct)指令格式指令格式指令功能指令功能机器码机器码00100101,direct00101rrrADD A,(A)(A)+(Ri)0010011iADD A,(A)(A)+data00100100,data周期周期ADD A,加法指令助记符为“ADD”,通用格式为:ADD目的操作数,源操作数源操作数与目的操作数A相加,结果保存在目的操作数A,且影响PSWRndirectRi#data目的操作数 源操作数Addition4第4页,本讲稿共39页ADD对PSW的影响 参与运算的两个二进制数可被看作无符号数(0255)或有符号数的补码(-128+127)。bit0bit1bit2bit3bit4bit5bit6bit7相加结果00000000PSWPOVRS0RS1F0ACCY进位进位11 无符号数结果超出范围(影响进位标志位)5第5页,本讲稿共39页ADD对PSW的影响 参与运算的两个二进制数可被看作无符号数(0255)或有符号数的补码(-128+127)。有符号数(影响溢出标志位)bit0bit1bit2bit3bit4bit5bit6bit7相加结果00000000PSWPOVRS0RS1F0ACCY进位无进位进位无进位1OV=C7C8 结果超出范围6第6页,本讲稿共39页0ADD对PSW的影响 参与运算的两个二进制数可被看作无符号数(0255)或有符号数的补码(-128+127)。目的操作数为A时(影响奇偶标志位)1(bit0+bit2+bit7)%2=01bit0bit1bit2bit3bit4bit5bit6bit7相加结果PSWPOVRS0RS1F0ACCY00000007第7页,本讲稿共39页A=A+R1=0AH,PSW=0C0HP1=0C0H,通过发光管亮灭指示标志位变化原地跳转范例MOVA,#0FHMOVR1,#0FBHADDA,R1MOVP1,PSWSJMP 0007HA=0FHR1=0FBH 将A与R1中内容相加,并用与P1口相连的发光二极管显示PSW状态。8第8页,本讲稿共39页加法指令ADD A,R1ALU00000000PSW+11111011000011110101000011111011R1片内RAMA110000101000001111第3位与第7位有进位+CY AC9第9页,本讲稿共39页带进位加法指令带进位加法指令助记符为“ADDC”,通用格式为:ADDC 目的操作数,源操作数1111(A)(A)+(Rn)+ADDC A,direct(A)(A)+(direct)+指令格式指令格式指令功能指令功能机器码机器码00110101,direct00111rrrADDC A,Ri(A)(A)+(Ri)+00110011iADDC A,#data(A)(A)+data+00110100,data周期周期ADDC A,Rn(CY)(CY)(CY)(CY)常用于多字节加法运算。对PSW的影响同ADD指令,只是运算时多了进位位Add with Carry 10第10页,本讲稿共39页带进位加法指令指令硬件结构半加器全加器ADDADDC11第11页,本讲稿共39页带借位减法指令带借位减法指令助记符为“SUBB”,通用格式为:SUBB目的操作数,源操作数 指令格式指令格式指令功能指令功能机器码机器码周期周期SUBB A,Rn(A)(A)(Rn)(CY)10011rrr1SUBB A,direct(A)(A)(direct)(CY)10010101,direct1SUBB A,Ri(A)(A)(Ri)(CY)1001011i1SUBB A,#data(A)(A)data(CY)10010100,data1Subtract with Borrow如何实现不带借位减法加法运算中的进位对应于减法运算中的借位位。执行SUBB前将CY清零12第12页,本讲稿共39页SUBB对PSW影响bit0bit1bit2bit3bit4bit5bit6bit7相减结果00000000PSWPOVRS0RS1F0ACCY借位借位11 第3位有借位,AC置1,第7位有借位,CY置1 第7位和第6位有一位需借位,另一位不借位,OV置1借位不借位1不借位借位13第13页,本讲稿共39页加1指令加1指令(增量指令)助记符为“INC”,通用格式为:INC操作数 指令格式指令格式指令功能指令功能机器码机器码周期周期 51指令系统中唯一的16位算术运算指令。影响P标志位,其它四条指令不影响标志位;INC A(A)(A)+1000001001INC DPTR(DPTR)(DPTR)+1101000112INC direct(direct)(direct)+100000101,direct1INC Ri(Ri)(Ri)+10000011i1INC Rn(Rn)(Rn)+100001rrr1Incement14第14页,本讲稿共39页内部总线5VP1.X引脚读引脚P1端口内部结构锁存器QCLDQ加1指令读锁存INCdirect若为P0,P1,P2,P3P1读字节改字节写字节datadata+1写锁存15第15页,本讲稿共39页减1指令减1指令助记符为“DEC”,通用格式为:DEC操作数 指令格式指令格式指令功能指令功能机器码机器码周期周期DecrementDEC A(A)(A)1 000101001DEC direct(direct)(direct)100010101,direct1DEC Ri(Ri)(Ri)10001011i1DEC Rn(Rn)(Rn)1 00011rrr1 修改输出端口时同INC direct。影响P标志位,其它四条指令不影响标志位;16第16页,本讲稿共39页加1减1指令为何有ADD,SUBB指令,还需INC、DEC指令指令区别占用2个字节;影响PSW中CY、AC、OV、P标志位ADD A,#01HINC A占用1个字节,节省空间;只影响P标志位17第17页,本讲稿共39页目目 录录 6.3.1 加减指令加减指令6.3.3 乘除指令乘除指令 6.3.4 十十进进制制调调整指令整指令18第18页,本讲稿共39页乘法指令乘法指令助记符为“MUL”,通用格式为:MULA,BALUA BAB乘积高8位乘积低8位 机器码:机器码:1010010010100100 机器周期:机器周期:4 4 对标志位影响:对标志位影响:累加器累加器A影响影响P标志标志位位;B影响影响OV标志标志位,位,B0,OV=1否则否则OV=0。相乘结果大于255,OV置位B0Multiplication19第19页,本讲稿共39页除法指令除法指令助记符为“DIV”,通用格式为:DIVA,BALUA BAB余数商 机器码:机器码:1000010010000100 机器周期:机器周期:4 4 对标志位影响:对标志位影响:累加器累加器A影响影响P标志标志位;当位;当除数除数为为0或相或相除的除的商商大于大于8位时,位时,OV=1。Division20第20页,本讲稿共39页目目 录录 6.3.1 加减指令加减指令6.3.3 乘除指令乘除指令 6.3.4 十十进进制制调调整指令整指令21第21页,本讲稿共39页十进制调整指令DA A 指令功能:对指令功能:对A A进行进行BCDBCD码调整码调整,将十六进制转换为十进制,将十六进制转换为十进制 机机 器器 码:码:11011101 01000100 机器周期:机器周期:1 1Decimal Adjust 使用时,常跟于ADD或ADDC指令之后。只对存放在A中BCD码之和有效,对减法无效;22第22页,本讲稿共39页十进制调整指令bit0bit1bit2bit3bit4bit5bit6bit7A00000000PSWPOVRS0RS1F0ACCY A低4位大于9 91或AC=1时,A=A+06H,且AC置位 A高4位大于9或CY=1时,A=A+60H,且CY置位 9123第23页,本讲稿共39页新编电类专业计算机基础6.4 逻辑运算指令24第24页,本讲稿共39页目目 录录 6.4.1 双操作数逻辑运算指令双操作数逻辑运算指令6.4.3 运算类指令小结运算类指令小结 6.4.2 单操作数逻辑运算指令单操作数逻辑运算指令25第25页,本讲稿共39页双操作数逻辑运算指令双操作数逻辑运算指令逻辑或或运算逻辑与与运算逻辑异或异或运算将两个8位二进制数按位进行逻辑运算。26第26页,本讲稿共39页逻辑与运算指令逻辑与指令助记符为“ANL”,通用格式为:ANL目的操作数,源操作数AND Logic 指令格式指令格式指令功能指令功能机器码机器码周期周期1111(A)(A)(Rn)ANL A,direct(A)(A)(direct)01010101,direct01011rrrANL A,Ri(A)(A)(Ri)0101011iANL A,#data(A)(A)data01010100,dataANL A,Rn12ANL direct,A(direct)(direct)(A)01010010ANL direct,#data(direct)(direct)data01010011,direct,data27第27页,本讲稿共39页逻辑或运算指令逻辑或指令助记符为“ORL”,通用格式为:ORL目的操作数,源操作数OR Logic 指令格式指令格式指令功能指令功能机器码机器码周期周期1111(A)(A)+(Rn)ORL A,direct(A)(A)+(direct)01000101,direct01001rrrORL A,Ri(A)(A)+(Ri)0100011iORL A,#data(A)(A)+data01000100,dataORL A,Rn12ORL direct,A(direct)(direct)+(A)01000010ORL direct,#data(direct)(direct)+data01000011,direct,data28第28页,本讲稿共39页逻辑异或运算指令逻辑异或指令助记符为“XRL”,通用格式为:XRL目的操作数,源操作数Exclusive-OR Logic 指令格式指令格式指令功能指令功能机器码机器码周期周期1111(A)(A)(Rn)XRL A,direct(A)(A)(direct)01100101,direct01101rrrXRL A,Ri(A)(A)(Ri)0110011iXRL A,#data(A)(A)data01100100,dataXRL A,Rn12XRL direct,A(direct)(direct)(A)01100010XRL direct,#data(direct)(direct)data01100011,direct,data29第29页,本讲稿共39页与与000001010101111111010101举例ANL A,R0#AAH#FCH0 0=00 1=01 0=01 1=1ACC10101000逻辑与可对位清零或保留相应位逻辑与,每一位运算等同一个与门30第30页,本讲稿共39页或或000111111101111111010101举例ORL A,R0#AAH#FCH0+0=00+1=11+0=11+1=1ACC11111110逻辑或可对位置1或保留相应位逻辑或,每一位运算等同一个或门31第31页,本讲稿共39页举例XRL A,R0#AAH#FCH异或异或0001101010011111110101010 0=00 1=11 0=11 1=0ACC01010110逻辑异或可对位取反或保留相应位逻辑异或,每一位运算等同一个异或门32第32页,本讲稿共39页目目 录录 6.4.1 双操作数逻辑运算指令双操作数逻辑运算指令6.4.3 运算类指令小结运算类指令小结 6.4.2 单操作数逻辑运算指令单操作数逻辑运算指令33第33页,本讲稿共39页单操作数逻辑运算指令 指令格式指令格式指令功能指令功能机器码机器码周期周期RRC A 带进位位A循环右移一位 00010011 1RL A A循环左移一位 00100011 1 RLC A 带进位位A循环左移一位 00110011 1 RR A A循环右移一位 00000011 1CLR A 将A清0 11100100 1 CPL A 将A取反 11110100 1SWAP A A高半字节与低半字节交换 11000100 1移位指令简单逻辑操作指令字节交换指令以累加器A为操作数。34第34页,本讲稿共39页移位指令RR ARotate Rightbit0bit1bit2bit3bit4bit5bit6bit7Abit1bit2bit3bit4bit5bit6bit7bit0RL ARotate Leftbit0bit1bit2bit3bit4bit5bit6bit7Abit7bit0bit1bit2bit3bit4bit5bit6 不影响标志位35第35页,本讲稿共39页bit0C移位指令bit6bit5bit4bit3bit2bit1bit0Cbit7RLC AC:CarryCYAbit1bit2bit3bit4bit5bit6bit7Cbit7bit6bit5bit4bit3bit2bit1bit7RRC AC:CarryCYAbit0bit1bit2bit3bit4bit5bit6bit0C 影响CY及P标志位36第36页,本讲稿共39页1010101001010101单操作数逻辑运算指令CLR AClearbit0bit1bit2bit3bit4bit5bit6bit7A00000000CPL AComplementbit0bit1bit2bit3bit4bit5bit6bit7A0000111111110000SWAP ASwapbit0bit1bit2bit3bit4bit5bit6bit7A每一位运算等同一个非门 不影响标志位执行前:(A)=55H执行后:(A)=AAH执行前:(A)=F0H执行后:(A)=0FH37第37页,本讲稿共39页目目 录录 6.4.1 双操作数逻辑运算指令双操作数逻辑运算指令6.4.3 数据运算指令小结数据运算指令小结 6.4.2 单操作数逻辑运算指令单操作数逻辑运算指令38第38页,本讲稿共39页数据运算指令小结运算类型操作对PSW影响算术运算逻辑运算CY、AC、OV、P标志位主要对8位无符号数进行算术操作,借助溢出标志,可对有符号数进行补码运算,借助进位标志,可用于多字节算术运算对操作数按位进行逻辑操作CY、P标志位39第39页,本讲稿共39页