1、单片机原理与接口应用单片机原理与接口应用第四章第四章 指令系统指令系统MCS51四大类:四大类:l内部内部RAM之间的数据传送指令之间的数据传送指令l外部外部RAM之间的数据传送指令之间的数据传送指令l堆栈操作指令堆栈操作指令l数据交换指令数据交换指令1. 1. 立即寻址立即寻址lMOVMOVA , #DATAA , #DATA;ADATA;ADATAlMOVMOVRn, #DATARn, #DATA;Rn;RnDATADATAlMOVMOVRi, #DATARi, #DATA;(Ri;(Ri)DATA)DATAlMOVMOVdir, #DATAdir, #DATA;(dir)DATA;(di
2、r)DATAn: 0n: 0,1 1,2 2,3 3,4 4,5 5,6 6,7 7i: 0,1i: 0,12. 2. 直接寻址直接寻址: :lMOVMOVA , DIR A , DIR ;A(DIR);A(DIR)lMOVMOVDIR, ADIR, A ; ;(DIR)ADIR)AlMOVMOVRn,Rn, DIRDIR;Rn;Rn(DIR)(DIR)lMOVMOVRi, DIR Ri, DIR ;(Ri;(Ri)(DIR)(DIR)lMOVMOVdir2,DIR1dir2,DIR1;(dir2)(DIR1);(dir2)(DIR1)n: 0n: 0,1 1,2 2,3 3,4 4,5 5,
3、6 6,7 7i: 0,1i: 0,13. 3. 间接寻址间接寻址lMOVMOVA , Ri A , Ri ;A(Ri;A(Ri) )lMOVMOVRiRi, A, A ;(R)A ;(R)AlMOVMOVdir, Ridir, Ri;(dir)(Ri;(dir)(Ri) )i: 0,1i: 0,14. 4. 寄存器寻址寄存器寻址lMOVMOVA , RnA , Rn ;ARn ;ARnlMOVMOVRnRn, A , A ;Rn;RnAAlMOVMOVdir, Rn dir, Rn ;(dir)Rn;(dir)Rnn: 0n: 0,1 1,2 2,3 3,4 4,5 5,6 6,7 7 注意
4、:不能在内部寄存器之间传送数据注意:不能在内部寄存器之间传送数据 MOV R2,R1 MOV R2,R11. 161. 16位地址传送位地址传送lMOVMOVDPTR,#DATA16DPTR,#DATA16 ;DPTRDATA16;DPTRDATA16 如:如:MOVMOVDPTR, #2000HDPTR, #2000H DPTR DPTR2000H2000H2.2.访问外部访问外部ROMROM的指令的指令lMOVCMOVCA, A+DPTRA, A+DPTR;A(A+DPTR);A(A+DPTR)lMOVCMOVCA, A+PC A, A+PC ;PCPC+1 ;PCPC+1 ;A(A+PC
5、;A(A+PC 均为单字节指令均为单字节指令 3.3.访问外部访问外部RAMRAM的指令的指令lMOVXMOVXA,A,RiRi ;A;A外部外部RAM(RAM(读读) )lMOVXMOVXRiRi,A A; ; 外部外部RAMA(RAMA(写)写) 256256个单元的范围,即:个单元的范围,即:00000000H H00FFH00FFHlMOVXMOVXA,A,DPTR;ADPTR;A外部外部RAM(RAM(读读) )lMOVXMOVXDPTRDPTR,A A ; ; 外部外部RAMA(RAMA(写)写) 64KB64KB范围,即:范围,即:00000000H HFFFFHFFFFH 也作
6、为外部扩展也作为外部扩展I/OI/O口的操作!口的操作!1. 1. 进栈进栈 PUSHPUSHlPUSHPUSHDIRDIR; ; SPSP+1SPSP+1 ; ; (SP)(DIR)(SP)(DIR) 如:如:PUSH ACCPUSH ACC; ;2.2.出栈出栈 POPPOPlPOPPOPDIRDIR; ; (DIR)(SP), (DIR)(SP), ; ; SPSP-1 SPSP-1 如:POP ACC; 主要用于保护现场(子程序中)1. 1. 字节交换指令字节交换指令 XCHXCHlXCH A,RnXCH A,Rn; ;A RnA Rn lXCH A,DIRXCH A,DIR; ; A A (DIR)(DIR)lXCH A,RiXCH A,Ri; ; A (RiA (Ri) ) 2.2.半字节交换指令半字节交换指令 XCHDXCHDlXCHD XCHD A,RiA,Ri;A;A0-3 0-3 (Ri(Ri) )0-30-3