单片微机原理第三章a3逻辑运算指令

上传人:ji****n 文档编号:57195333 上传时间:2018-10-19 格式:PPT 页数:33 大小:444.50KB
返回 下载 相关 举报
单片微机原理第三章a3逻辑运算指令_第1页
第1页 / 共33页
单片微机原理第三章a3逻辑运算指令_第2页
第2页 / 共33页
单片微机原理第三章a3逻辑运算指令_第3页
第3页 / 共33页
单片微机原理第三章a3逻辑运算指令_第4页
第4页 / 共33页
单片微机原理第三章a3逻辑运算指令_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《单片微机原理第三章a3逻辑运算指令》由会员分享,可在线阅读,更多相关《单片微机原理第三章a3逻辑运算指令(33页珍藏版)》请在金锄头文库上搜索。

1、3.2.3 逻辑运算指令(24条),一、 逻辑与、或、非、异或指令 1ANL类指令(6条)其功能:将源操作数内容和目的操作数内容按位相“与”,结果存入目的操作数指定单元,源操作数不变。ANL A,Rn ;ARnAANL A,direct ;A(direct)AANL A,Ri ;A(Ri)AANL A,#data ;AdataAANL direct,A ;(direct)A(direct)ANL direct,#data ;(direct)data(direct),举例,例 设AF6H,(30H)0FH执行 ANL A,30H ;A(30H)A操作如下:11110110 (F6H) 00001

2、111 (0FH) 注意:按位“与”00000110 (06H)结果:A06H,30H地址内容不变即(30H)=0FH 若执行 ANL 30H,A ;(30H)A(30H)操作同上,结果放在30H地址中,A中内容不变即(30H)=06H,AF6H。,2ORL类指令(6条) 功能:将源操作数内容与目的操作数内容按位逻辑“或”,结果存入目的操作数指定单元中,源操作数不变。ORL A,Rn ;ARnAORL A,direct ;A(direct)AORL A,Ri ;A(Ri)AORL A,#data ;AdataAORL direct,A ;(direct)A(direct)ORL direct,

3、#data;(direct)data(direct),3XRL类指令(6条)功能:将两个操作数指定内容按位“异或”,结果存于目的操作数指定单元中。“异或”原则是相同为“0”,相异为“1”。XRL A,Rn ;A RnAXRL A,direct ;A (direct)AXRL A,Ri ;A (Ri)AXRL A,#data ;A dataAXRL direct,A ;(direct) A(direct)XRL direct,#data;(direct) data(direct),例 (50H)15H执行 XRL 50H,#06H ;(50H) 06H(50H)操作如下:00010101 (05

4、H) 00000110 (06H)00010011 (13H) 结果:(50H)13H,4取反、清零指令CPL A ; AA 累加器内容按位取反CLR A ;00HA 累加器A清0,二、 循环移位指令(4条),功能:将累加器A中内容循环移位或者和进位位一起移位RL A ;A中内容循环左移,执行指令一次左移一位 RR A ;A中内容循环右移,每执行指令一次右移一位 RLC A ;A与CY内容一起循环左移一位 RRC A ;A与Cy内容一起循环右移一位,例 MOV A,#80HRL A ;A01H 例 MOV A,#80HRR A ;A40H 例 MOV A,#80HRLC A ;CY=0, A0

5、0H;CY=1, A=01H 例 MOV A,#80HRRC A ; CY=0, A01000000B (40H); CY=1, A11000000B (C0H),问题:将P1口的灯移动,可用什么指令?,MOV A, #01H LP: MOV P1,ALCALL DELAYRL ASJMP LP,3.2.4 控制转移类指令(17条),功能:根据要求修改程序计数器PC内容,以改变程序运行方向,实现转移。 转移类指令又可分为:无条件转移、条件转移、绝对转移、相对转移和调用、返回指令。,一、 无条件转移类指令(4条),LJMP addl6 ;addl6PC无条件跳转到addl6;地址,可在64KB范

6、围内转移,;称为长转移指令AJMP add11 ;add11PC,无条件转向add11;地址,只能在2KB范围内转移SJMP rel ;PC+2+relPC相对转移,rel是偏移量,;它是8位有符号数,范围-128+127;即向后跳转128B,向前可跳转127BJMP A十DPTR ;A+DPTRPC,属散转指令,;无条件转向A与DPTR内容相加后;形成的新地址,例1 请看如下程序PC 2000H LJMP 4000H ;4000HPC4000H MOV A,#11H 程序执行完第一条无条件转移指令后,马上跳转到4000H地址,执行该地址程序。,例2 程序2000H:MOV R0,#1BH ;

7、1BHR02002H:SJMP 03H ;PC+2+rel=2002H+2+03H;2007HPC 2006H:2007H:执行SJMP 03H指令后,跳转到2007H地址执行程序。说明:实际编写程序时最好把偏移量和转移地址都用符号表示,机器汇编时自动计算出偏移字节数,不容易出错,同时也便于修改程序。,例3 ORG 4000HLJMP MAINORG 400BHSJMP INTIMAIN: INTI: MAIN、INTI称为符号地址。,二、 条件转移类指令(8条),功能:根据条件判断是否转移,条件满足则转移,条件不满足则顺序执行。 1. 判 A 转JZ rel ;A0, PC+2+relPC;

8、A0顺序执行JNZ rel ;A0, PC+2+relPC;A0顺序执行,2.比较指令,功能:源操作数与目的操作数比较,相等顺序执行CJNE A,direct,rel ;A(direct)转向PC+3+relPC ; 且A(direct),0CY; A(direct),lCY;A(direct),PC+3PC即顺序执行CJNE A,#data,rel ;Adata转向PC+3+relPC; 且 Adata,0CY;Adata,1CY;Adata,PC+3PC即顺序执行,CJNE Rn,#data,rel ;Rndata转向PC+3+relPC;且 Rndata,0CY, Rndata,1CY;

9、Rndata,PC+3PC即顺序执行CJNE Ri,#data,rel;(Ri)data转向PC+3+relPC;且 (Ri)data,0CY, (Ri)data,1CY;(Ri)data,PC+3PC即顺序执行 注意:CJNE类指令中借用进位标志位CY作为比较结果的标志位,目的操作数内容小于源操作数内容CY置“1”,反之CY清“0”。该类指令多用于分支程序,3.减“1”转移指令 DJNZ Rn,rel ; Rn-1Rn,;Rn0,PC+2+relPC;Rn0,PC+2PC顺序执行 DJNZ direct,rel ;(direct)-1(direct),;(direct)0转向PC+2+rel

10、PC;(direct)0,PC+2PC顺序执行注意: DJNZ指令执行时Rn或direct先减l,然后再判断Rn或direct内是否等于0。不为0则转,为0顺序执行。DJNZ指令在循环程序中,控制循环次数很方便。,延时程序,DELAY: MOV R0, #10LP: NOPDJNZ R0, LPRET 注意:编程时不要写绝对字节数,用符号地址,三、 调用、返回、空操作指令,1调用指令(2条)调用指令用于调用子程序。LCALL addr16 ;长调用指令 功能:该指令可调用64KB范围内的任意子程序,故称长调用指令。ACALL addr11 ;短调用指令。 功能:只能调用2KB范围内的子程序,故

11、称短调用指令。 2程序返回指令(2条)RET ;子程序返回指令功能:放在子程序最后,使程序准确返回到主程序断点处。,三、 调用、返回、空操作指令,RETI ;中断返回指令功能:用于中断服务程序,使中断程序结束后准确返回到主程序断点处,执行过程同RET,它还能清除优先级状态。3空操作指令(1条)NOP ;只进行取指令、译码,不进行任何操作,故为空操作,常用于产生一个机器周期延时。,例 编程控制累加器A中数从0逐次加1,当A中为100时停止加l,把结果存入片内RAM 50H单元中。程序CLR A ; 清AMOV R0,#100 ; 循环常数送R0LP: INC A ; A+1ADJNZ R0,LP

12、 ; R0-1R0,R00转LPMOV 50H,A ;R00(够100次,A50H) ;(50H)=100=64H,3.2.5 位操作指令(布尔指令),功能:对内部RAM中可进行位操作的区域进行位操作。主要位操作有变量传送、逻辑运算、控制转移等。 位操作与字节操作的主要区别:用进位标志位CY(记为C)作位累加器。C的功能类似累加器A,只是A中可存放8位二进制数,C中只能存放一位二进制数,或为“1”或为“0”。MOV C,bit ;(bit)C,寻址位的状态送入CMOV bit,C ;C(bit),C的状态送位地址中CLR C ;0C,清0 C累加器CLR bit ;0(bit),清0寻址位,3

13、.2.5 位操作指令(布尔指令),CPL C ;CC,C取反CPL bit ;(bit)(bit),寻址位取反SETB C ;1C,C置“1”SETB bit ;1(bit),寻址位置“1”,ANL C,bit ; C(bit)C,寻址位和C“与”,;结果在CANL C,/bit ;C(bit)C,寻址位的非;和C“与”,结果在CORL C,bit ;C(bit)C,寻址位与C“或”,;结果在CORL C,/bit ;C(bit)C,寻址位的非;和C“或”,结果在CJC rel ; C=1转向PC+2+relPC;C0顺序执行PC+2PCJNC rel ;C=0转向PC+2+relPC;C1顺

14、序执行PC+2PC,JB bit,rel ;(bit)l转向PC+3+relPC; (bit)0顺序执行PC+3PCJNB bit,rel ;(bit)0转向PC+3+relPC;(bit)l顺序执行PC+3PCJBC bit,rel ;(bit)1转向PC+3+relPC; 同时0(bit);(bit)0顺序执行PC+3PC注意:JBC与JB指令区别,前者转移后并把寻址位清0,后者只转移不清0寻址位。,例 用位操作指令编程计算逻辑方程P1.7ACC.0(B.0+P2.1)+P3.2式中 “+”表示逻辑“或”;“”表示逻辑“与”。程序MOV C,B.0 ;B.0CORL C,P2.1 ;C P2.1C即B.0 + P2.1CANL C,ACC.0 ;C ACC.0C;即ACC.0(B.0 + P2.1)CORL C,/P3.2 ;C P3.2C; 即 ACC.0(B.0+P2.1)+P3.2CMOV P1.7,C ;CP1.7,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 初中教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号