单片机_3(2).ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《单片机_3(2).ppt》由会员分享,可在线阅读,更多相关《单片机_3(2).ppt(61页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、二、算术运算指令二、算术运算指令 1 1 加加法法、减、减法法指令指令 2 2 乘乘法法、除、除法法指令指令 3 3 加加1 1、减、减1 1指令指令 4 4 十进制十进制调整调整指令指令 5 5 算术运算类指令应用实例算术运算类指令应用实例 1 1 加法、减法指令加法、减法指令 n加减法指令运算示意图:ARndirect#dataRi1 1 加法、减法指令加法、减法指令 1)加法类指令加法类指令 汇编指令格式汇编指令格式 机器指令格式机器指令格式 操操 作作 ADD A,Rn 28H2FH A (A)+(Rn)ADD A,direct 25H direct A (A)+(direct)ADD
2、 A,Ri 26H27H A (A)+(Ri)ADD A,#data 24H data A (A)+#data 注意注意:算术运算指令,除加:算术运算指令,除加1减减1指令外,其余指令都指令外,其余指令都会影响会影响PSW的的AC、C、OV、P标志位。标志位。1 1 加法、减法指令加法、减法指令 2)带进位带进位加法指令加法指令 汇编指令格式汇编指令格式 指令代码指令代码 操操 作作 ADDC A,Rn 38H3FH A(A)+(Rn)+CY ADDC A,direct 35H direct A(A)+(direct)+CY ADDC A,Ri 36H37H A(A)+(Ri)+CY ADDC
3、 A,#data 34H data A(A)+#data+CY注意:本指令影响标志位注意:本指令影响标志位AC、C、OV、P。1 1 加法、减法指令加法、减法指令 3)带借位带借位减法指令减法指令 汇编指令格式汇编指令格式 指令代码指令代码 操操 作作 SUBB A,Rn 98H9FH A(A)-CY-(Rn)SUBB A,direct 95H direct A(A)-CY-(direct)SUBB A,Ri 96H97H A(A)-CY-(Ri)SUBB A,#data 94H data A(A)-CY-#data注意:在执行不带借位的运算时,可在注意:在执行不带借位的运算时,可在“SUBB
4、”指令指令前用前用“CLR C”指令将指令将CY清清0。指令影响标志位。指令影响标志位AC、C、OV、P。2 2 乘法、除法指令乘法、除法指令 1)乘法乘法指令指令 汇编指令格式汇编指令格式 机器指令格式机器指令格式 操操 作作 MUL AB A4H BA (A)(B)注意:若乘积大于注意:若乘积大于0FFH,则,则OV置置1,否则清,否则清0(此时此时B的内容为的内容为0)。CY总是被清总是被清0。该操作也影响标志位。该操作也影响标志位P。2)除法除法指令指令 汇编指令格式汇编指令格式 机器指令格式机器指令格式 操操 作作 DIV AB 84H A(A)(B)的商的商,B(A)(B)的余数的
5、余数注意:若除数注意:若除数(B)=00H,则结果无法确定,则结果无法确定,OV置置1。CY总是被总是被清清0。该操作也影响标志位。该操作也影响标志位P。3 3 加加1 1、减、减1 1指令指令 1)加加1指令指令 汇编指令格式汇编指令格式 机器代码机器代码 操操 作作 INC A 04H A (A)+1 INC Rn 08H0FH Rn (Rn)+1 INC direct 05H direct direct(direct)+1 INC Ri 06H07H (Ri)(Ri)+l INC DPTR A3H DPTR (DPTR)+1注意:该操作不影响注意:该操作不影响PSW标志位。标志位。3 3
6、 加加1 1、减、减1 1指令指令 2)减减1指令指令 汇编指令格式汇编指令格式 机器指令格式机器指令格式 操操 作作 DEC A 14H A (A)-1 DEC Rn 18H1FH Rn (Rn)-l DEC direct 15H direct direct(direct)-1 DEC Ri 16H17H (Ri)(Ri)-1注意:注意:1.该操作不影响该操作不影响PSW标志位。标志位。2.51单片机无单片机无DEC DPTR指令指令。4 4 十进制调整指令十进制调整指令 汇编指令格式汇编指令格式 机器码格式机器码格式 操操 作作 DA A D4H 对对A进行进行BCD调整调整注意:这条指令
7、一般跟在注意:这条指令一般跟在ADD或或ADDC指令后,对累指令后,对累加器加器A中的结果进行中的结果进行BCD调整。调整。该操作影响标志位该操作影响标志位P。5 5 算术运算类指令应用实例算术运算类指令应用实例【例例1】有两个有两个BCD码表示的码表示的4位十进制数,分别存放在内位十进制数,分别存放在内部数据存储器的部数据存储器的50H51H单元和单元和60H61H单元,试编单元,试编写程序求这两个数之和,并将结果存放在写程序求这两个数之和,并将结果存放在40H42H单单元。元。解:求两个求两个BCD数之和的运算程序如下:数之和的运算程序如下:MOV A,50H;取第一个数低取第一个数低2位
8、位BCD码码 ADD A,60H;加第二个数低加第二个数低2位位BCD码码 DA A;十进制调整十进制调整 MOV 40H,A;保存结果的低保存结果的低2位位 MOV A,51H;取高位取高位BCD码码 ADDC A,61H;高位相加高位相加 DA A;十进制调整十进制调整 MOV 41H,A;保存结果的高保存结果的高2位位 MOV A,#00H ADDC A,#00H;计算进位计算进位 MOV 42H,A;保存进位保存进位5 5 算术运算类指令应用实例算术运算类指令应用实例【例例2】试编程计算试编程计算5678H 1234H的值,结果保存在的值,结果保存在R6、R5中。中。解:减数和被减数都
9、是解:减数和被减数都是16位二进制数,计算时要先进行低位二进制数,计算时要先进行低8位的减法,然后再进行高位的减法,然后再进行高8位的减法,在进行低位的减法,在进行低8位减法位减法时,不需要考虑借位,所以要在减法指令之前将借位标时,不需要考虑借位,所以要在减法指令之前将借位标志清志清0。程序如下:。程序如下:MOV A,#78H;被减数低被减数低8位送累加器位送累加器 CLR C ;清进位标志位清进位标志位CY SUBB A,#34H;减去减数减去减数 MOV R5,A;保存低保存低8位位 MOV A,#56H;被减数高被减数高8位送累加器位送累加器 SUBB A,#12H;减去减数减去减数
10、MOV R6,A;保存高保存高8位位5 5 算术运算类指令应用实例算术运算类指令应用实例【例3】试分析执行下列指令以后,寄存器和内部试分析执行下列指令以后,寄存器和内部RAM的状态。的状态。MOV R0,#30H MOV 30H,#40H MOV 31H,#50H INC R0 INC R0 INC R0;数数30H送入送入R0;数数40H送入片内送入片内RAM 30H单元单元;数数50H送入片内送入片内RAM 31H单元单元;将片内将片内RAM 30H单元中的内容加单元中的内容加1;将将R0中的内容加中的内容加1;将片内将片内RAM 31H单元中的内容加单元中的内容加1解:解:(R0)=31
11、H (30H)=41H (31H)=51H 三、逻辑运算指令三、逻辑运算指令 1 1 逻辑逻辑“与与”、“或或”、“异或异或”指令指令 2 2 清零清零、取反取反指令指令 3 3 循环移位循环移位指令指令 4 4 逻辑运算类指令应用实例逻辑运算类指令应用实例 1 1 逻辑逻辑“与与”、“或或”、“异或异或”指令指令n逻辑运算逻辑运算“与与”、“或或”、“异或异或”指令示意图:指令示意图:ARndirect#dataRi运算运算运算运算运算运算运算运算运算运算1 1 逻辑逻辑“与与”、“或或”、“异或异或”指指令令1)逻辑逻辑“与与”指令指令 汇编指令格式汇编指令格式 机器指令格式机器指令格式
12、操操 作作 ANL A,Rn 58H5FH A (A)(Rn)ANL A,direct 55H direct A (A)(direct)ANL A,Ri 56H57H A (A)(Ri)ANL A,#data 54H data A (A)#data ANL direct,A 52H direct direct (direct)(A)ANL direct,#data 53H direct data direct(direct)#data注意:后注意:后2条指令直接地址如果是条指令直接地址如果是I/O端口端口P0P3,则为端口的,则为端口的“读读改改写写”操作,操作,即:将端口的内容读入即:将端口
13、的内容读入CPUCPU进行逻辑运算,进行逻辑运算,然后再回写到端口。然后再回写到端口。前前4条指令的操作影响标志位条指令的操作影响标志位P。1 1 逻辑逻辑“与与”、“或或”、“异或异或”指指令令2)逻辑逻辑“或或”指令指令 汇编指令格式汇编指令格式 机器指令格式机器指令格式 操操 作作 ORL A,Rn 48H4FH A (A)(Rn)ORL A,direct 45H direct A (A)(direct)ORL A,Ri 46H47H A (A)(Ri)ORL A,#data 44H data A (A)#data ORL direct,A 42H direct direct (dire
14、ct)(A)ORL direct,#data 43H direct data direct(direct)#data注意:后注意:后2条指令若直接地址正好是条指令若直接地址正好是I/O端口端口P0P3,则为端口的,则为端口的“读读改改写写”操作。前操作。前4条指令的操作影响标志位条指令的操作影响标志位P。1 1 逻辑逻辑“与与”、“或或”、“异或异或”指指令令3)逻辑逻辑“异或异或”指令指令 汇编指令格式汇编指令格式 机器指令格式机器指令格式 操操 作作 XRL A,Rn 68H6FH A (A)(Rn)XRL A,direct 65H direct A (direct)(A)XRL A,Ri
15、 66H67H A (A)(Ri)XRL A,#data 64H data A (A)#data XRL direct,A 62H direct direct (direct)(A)XRL direct,#data 63H direct data direct(direct)#data注意:后注意:后2条指令若直接地址正好是条指令若直接地址正好是I/O端口端口P0P3,则为端口的,则为端口的“读读改改写写”操作。前操作。前4条指令的操作影响标志位条指令的操作影响标志位P。2 2 清零、取反指令清零、取反指令 1)累加器累加器A清清0指令指令 汇编指令格式汇编指令格式 机器指令格式机器指令格式
16、操操 作作 CLR A E4H A 0注意:该操作注意:该操作影响影响标志位标志位P。2)累加器累加器A取反取反指令指令 汇编指令格式汇编指令格式 机器指令格式机器指令格式 操操 作作 CPL A F4H A (/A)注意:注意:对累加器对累加器A的内容逐位取反,的内容逐位取反,不影响不影响标志位。标志位。3 3 循环移位指令循环移位指令 1)累加器累加器A循环左移循环左移指令指令 汇编指令格式汇编指令格式 机器指令格式机器指令格式 操操 作作 RL A 23H 2)累加器累加器A循环右移循环右移指令指令 汇编指令格式汇编指令格式 机器指令格式机器指令格式 操操 作作 RR A 03H 注意:
17、每次移注意:每次移1位。以上位。以上2条指令均不影响条指令均不影响PSW标志标志位。位。3 3 循环移位指令循环移位指令 3)累加器累加器A带进位循环左移带进位循环左移指令指令 汇编指令格式汇编指令格式 机器指令格式机器指令格式 操操 作作 RLC A 33H 4)累加器累加器A带进位循环右移带进位循环右移指令指令 汇编指令格式汇编指令格式 机器指令格式机器指令格式 操操 作作 RRC A 23H 注意:以上注意:以上2指令均影响标志位指令均影响标志位P和和CY。4 4 逻辑运算类指令应用实例逻辑运算类指令应用实例【例例1】将将P1口的口的P1.2、P1.3、P1.7清零清零,其余位不变。,其
18、余位不变。解:相应的指令为:解:相应的指令为:ANL P1,#01110011B【例例2】利用逻辑运算指令将利用逻辑运算指令将P1口的口的P1.1、P1.3、P1.5置置1,其余位保持不变。,其余位保持不变。解:相应的指令为:解:相应的指令为:ORL P1,#00101010B【例例3】利用逻辑运算指令,将内部利用逻辑运算指令,将内部RAM中中40H单元的单元的1、3、5、7位位取反取反,其他位保持不变。,其他位保持不变。解:相应指令为:解:相应指令为:XRL 40H,#0AAH ;0AAH=10101010B4 4 逻辑运算类指令应用实例逻辑运算类指令应用实例【例例4】利用逻辑运算指令将当前
19、工作寄存器设定利用逻辑运算指令将当前工作寄存器设定为第为第3组工作寄存器。组工作寄存器。解:相应指令为:解:相应指令为:ORL PSW,#00011000B【例例5】已知已知(A)=00111101B=3DH,CY=0。试分析。试分析执行执行“RLC A”指令后累加器指令后累加器A的内容。的内容。解:执行指令解:执行指令“RLC A”的结果为的结果为 (A)=01111010B=7AH CY=0 7AH正是正是3DH的的2倍,该指令执行的是乘倍,该指令执行的是乘2操作。操作。4 4 逻辑运算类指令应用实例逻辑运算类指令应用实例【例例6】拆字程序:在内部拆字程序:在内部RAM 40H单元保存有以
20、单元保存有以压缩压缩BCD码表示的码表示的2位十进制数,编程将它们拆位十进制数,编程将它们拆开,分别保存在内部开,分别保存在内部RAM的的41H、42H单元。单元。解:程序如下:解:程序如下:MOV A,40H;压缩压缩BCD码送累加器码送累加器 ANL A,#0FH;高高4位清位清0,保留低保留低4位位 MOV 41H,A;保存低保存低4位位BCD码码 MOV A,40H;取数据取数据 MOV A,#0F0H;低低4位清位清0,保留高保留高4位位 SWAP A;高低位交换高低位交换 MOV 42H,A;保存高保存高4位位BCD码码四、控制转移类指令四、控制转移类指令 1 1 无条件无条件转移
21、指令转移指令 2 2 条件条件转移指令转移指令 3 3 调用、返回调用、返回指令指令 4 4 空操作空操作指令指令 5 5 控制转移类指令应用实例控制转移类指令应用实例 1 1 无条件转移指令无条件转移指令n无条件转移指令是指当程序执行到该指令时,无条件转移指令是指当程序执行到该指令时,程序无条件转移到指令所提供的地址处执行。程序无条件转移到指令所提供的地址处执行。n无条件转移类指令有四类无条件转移类指令有四类:u 绝对绝对转移转移 AJMPAJMPu 长长转移转移 LJMPLJMPu 相对转移相对转移(短短转移转移)SJMPSJMPu 间接间接转移转移(散转指令散转指令)JMPJMP1 1
22、无条件转移指令无条件转移指令1)1)绝对绝对绝对绝对转移指令转移指令转移指令转移指令 汇编指令格式汇编指令格式 机器指令格式机器指令格式 操操 作作 AJMP addr11 a10a9a800001a7a0 PC(PC)+2,PC100addr11,(PC1511)不变不变 注意:本条指令提供注意:本条指令提供11 位地址,可在该指令后位地址,可在该指令后 面一个存储单元所在的面一个存储单元所在的 2KB区域内无条件转移。区域内无条件转移。1 1 无条件转移指令无条件转移指令2)2)长长长长转移指令转移指令转移指令转移指令 汇编指令格式汇编指令格式 机器指令格式机器指令格式 操操 作作 LJM
23、P addr16 02H addr16 PC addr16 注意:本条指令提供注意:本条指令提供16 位目的地址,所以程序位目的地址,所以程序 可转向可转向64KB程序存储器程序存储器 地址空间的任何单元。地址空间的任何单元。1 1 无条件转移指令无条件转移指令3)3)相对相对相对相对转移转移转移转移(短短短短转移转移转移转移)指令指令指令指令 汇编指令格式汇编指令格式 机器指令格式机器指令格式 操操 作作 SJMP rel 80H rel PC (PC)+2,PC (PC)+rel 注意:本条指令的操作数是相对地址,注意:本条指令的操作数是相对地址,rel是一个带符号的是一个带符号的偏移量偏
24、移量(补码补码),其范围为,其范围为-128+127共共256字节。负数字节。负数表示反向转移,正数表示正向转移。表示反向转移,正数表示正向转移。如果指令中偏移量如果指令中偏移量rel=FEH,因为,因为FEH是是-2的补码,的补码,所以转移目的地址所以转移目的地址=PC+2-2=PC,结果转向自己,导致,结果转向自己,导致无限循环。这条指令称为无限循环。这条指令称为原地踏步原地踏步指令,即程序执行到指令,即程序执行到这条指令时,不再向下执行,而在该指令处原地踏步。这条指令时,不再向下执行,而在该指令处原地踏步。原地踏步指令在程序中常写为:原地踏步指令在程序中常写为:SJMP$1 1 无条件转
25、移指令无条件转移指令4)间接转移指令间接转移指令(散转指令散转指令)汇编指令格式汇编指令格式 机器指令格式机器指令格式 操操 作作 JMP A+DPTR 73H PC(A)+(DPTR)注意:该指令采用的是变址寻址方式,指令执行过程注意:该指令采用的是变址寻址方式,指令执行过程对对DPTR、A和标志位均无影响。这条指令可以根和标志位均无影响。这条指令可以根据累加器据累加器A的不同值实现多个方向的转移,可代的不同值实现多个方向的转移,可代替众多的判断跳转指令,具有散转功能,所以又替众多的判断跳转指令,具有散转功能,所以又称散转指令。称散转指令。2 2 条件转移指令条件转移指令n条件转移指令是指根
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 _3
![提示](https://www.deliwenku.com/images/bang_tan.gif)
限制150内