首页 [知识]经典的51单片机汇编指令详解

[知识]经典的51单片机汇编指令详解

举报
开通vip

[知识]经典的51单片机汇编指令详解[知识]经典的51单片机汇编指令详解 MCS-51系列单片机指令以A开头的指令有18条,分别: ACALL addr11 ADD A,Rn ADD A,direct ADD A,@Ri ADD A,#data ADDC A,Rn ADDC A,direct ADDC A,@Ri ADDC A,#data AJMP addr11 ANL A,Rn ANL A,direct ANL A,@Ri ANL A,#data ANL direct,A ANL direct,#data 以X开头的指令有1...

[知识]经典的51单片机汇编指令详解
[知识]经典的51单片机汇编指令详解 MCS-51系列单片机指令以A开头的指令有18条,分别: ACALL addr11 ADD A,Rn ADD A,direct ADD A,@Ri ADD A,#data ADDC A,Rn ADDC A,direct ADDC A,@Ri ADDC A,#data AJMP addr11 ANL A,Rn ANL A,direct ANL A,@Ri ANL A,#data ANL direct,A ANL direct,#data 以X开头的指令有10条,分别为: XCH A,Rn XCH A,direct XCH A,@Ri XCHD A,@Ri XRL A,Rn XRL A,direct XRL A,@Ri XRL A,#data XRL direct,A XRL direct,#data 1、XCH A,Rn 指令名称:寄存器寻址字节交换指令 指令代码:C8H~CFH 指令功能:寄存器寻址字节 操作内容:(A)交换(Rn);n,0~7 字节数: 1 机器周期:1 2、XCH A,direct 指令名称:直接寻址字节交换指令 指令代码:C5H 指令功能:累加器内容与内部RAM低128单元或专用寄存器内容交换 操作内容:(A)交换(direct) 字节数: 2 机器周期:1 3、XCH A,@Ri 指令名称:间接寻址字节交换指令 指令代码:C6H~C7H 累加器内容与内部RAM低128单元内容交换 指令功能: 操作内容:(A)交换((Ri)); i,0,1 字节数: 1 机器周期:1 4、XCHD A,@Ri 指令名称:半字节交换指令 指令代码:D6H~D7H 指令功能:累加器内容低4位与内部RAM低128单元低4位交换 操作内容:(A)3~0交换((Ri))3~0;i,0,1 字节数: 1 机器周期:1 5、XRL A,Rn 指令名称;逻辑异或操作指令 指令代码:68H~6FH 指令功能:累加器内容与寄存器内容进行逻辑异或操作 操作内容:A<-(A)异或(Rn); n,0~7 字节数: 1 机器周期:1 6、XRL A,direct 指令名称:逻辑异或操作指令 指令代码:65H 指令功能:累加器内容与内部RAM低128单元或专用寄存器内容进行逻辑异或操作 操作内容:A<-(A)异或(direct) 字节数: 2 机器周期:1 7、XRL A,@Ri 指令名称:逻辑异或指令 指令代码:66H~67H 指令功能:累加器与内部RAM低128单元内容进行逻辑异或操作 操作内容:A<-(A)异或((Ri)); i,0,1 字节数: 1 机器周期:1 8、XRL A,#data 指令名称:逻辑异或指令 指令代码:64H 指令功能:累加器内容与立即数进行逻辑异或操作 操作内容:A1?/FONT>(A)异或data 字节数: 2 机器周期:1 9、XRL direct,A 指令名称:逻辑异或操作指令 指令代码:62H 指令功能:累加器内容与内部RAM低128单元或专用寄存器内容进行逻辑异或操作 操作内容:direct一(direct)异或(A) 字节数: 2 机器周期:1 10、XRL direct,#data 指令名称:逻辑异或操作指令 指令代码:63H 指令功能:内部RAM低128单元或专用寄存器内容与立即数进行逻辑异或操作 操作内容:direct<-(direct)异或data 字节数: 3 机器周期:2 以R开头的指令有6条,分别为: RET RETI RL A RLC A RR A RRC A 1、RET 指令名称:子程序返回指令 指令代码:22H 指令功能:子程序返回 操作内容:PC15~8<-((SP)) SP<-(SP)-1 PC7~0<-((SP)) SP<-(SP)-1 字节数: 1 机器周期:2 2、RETI 指令名称:中断返回指令 指令代码:32H 指令功能:中断服务程序返回 操作内容’:PC15?/FONT>8<-((SP)) SP<-(SP)-l PC7~0<-((SP)) SP<-(SP)-1 字节数: 1 机器周期:2 3、RL A 指令名称:循环左移指令 指令代码:23H 指令功能:累加器内容循环左移一位 操作内容:An+1<-(An); n,0~6 A0<-(A7) 字节数: 1 机器周期:1 4、RLC A 带进位循环左移指令指令名称: 指令代码:33H 指令功能:累加器内容连同进位标志位循环左移一位 操作内容:An-1<-(An); n,0~6 A0<-(C) C<-(A7) 字节数: 1 机器周期:1 5、RR A 指令名称:循环右移指令 指令代码:03H 指令功能:累加器内容循环右移一位 操作内容:An<-(An+1);n,0~6 A7<-(A0) 字节数: 1 机器周期:1 6、RRC A 指令名称:带进位循环右移指令 指令代码:13H 指令功能:累加器内容连同进位标志位循环右移一位 操作内容:An<-(An+1);n,0~6 A7<-(C) C<-(A0) 字节数: 1 机器周期:1 以S开头的指令有8条,分别为: SETB c SETB bit SJMP rel SUBB A,Rn SUBB A,direct SUBB A,@Ri SUBB A,#data SWAP A 1、SETB c 指令名称:进位标志置位指令 指令代码:D.H 指令功能:进位标志位置位 操作内容:C<-1 字节数: 1 机器周期:1 2、SETB bit 指令名称:直接寻址位置位指令 指令代码:D2H 指令功能:内部RAM可寻址位或专用寄存器指定位置位 操作内容:bit<-1 字节数: 2 机器周期:1 3、SJMP rel 指令名称:短转移指令 指令代码:80H 指令功能:按指令提供的偏移量计算转移的目的地址,实现程序的无条件相对转移; 操作内容:PC<-(PC)+2 PC<-(PC)+rel 字节数: 2 机器周期:2 使用说明:偏移量是8位二进制补码数,可实现程序的双向转移,其转移范围是(PC一126)一(PC+129)。其中PC值为本指令的地址。 4、SUBB A,Rn 指令名称:寄存器寻址带进位减法指令 指令代码:98H~9FH 指令功能:累加器内容减寄存器内容和进位标志位内容 操作内容:A<-(A)-(Rn)-(C); n,0~7 字节数: 1 机器周期:1 影响标志位:当够减时,进位标志位复位;不够减时,进位标志置位。当位3发生借位时,AC 置位;否则AC复位。当位6及位7不同时发生借位时,OV置位;否则OV复位。 5、SUBB A,direct 指令名称:直接寻址带进位减法指令 指令代码:95H 指令功能:累加器内容减内部RAM低128单元或专用寄存器和进位标志位内容 操作内容:A<-(A)-(diret)-(C) 字节数: 2 机器周期:1 影响标志位:同SUBB A,Rn指令(序号97) 6、SUBB A,@Ri 指令名称:间接寻址带进位减法指令 指令代码:96H~97H 指令功能:累加器内容减内部RAM低128单元内容及进位标志位内容 操作内容:A<-(A)-((Ri))-(C);i,0,1 字节数: 1 机器周期:1 影响标志位:同SUBB A,Rn指令(序号97) 7、SUBB A,#data 指令名称:立即数带进位减法指令 指令代码:94H 指令功能:累加器内容减立即数及进位标志内容 操作内容:A<-(A)-data-(C) 字节数: 2 机器周期:1 影响标志位:同SUBB A,Rn指令(序号97) 8、SWAP A 指令名称:累加器高低半字节交换指令 指令代码:C4H 指令功能:累加器内容的高4位与低4位交换 操作内容:(A)7?/FONT>4交换(A)3?/FONT>0 字节数: 1 机器周期:1 以N开头的指令只有1条,就是: 1、NOP 指令名称:空操作指令 指令代码;00H 指令功能:不执行任何操作,常用于产生一个机器周期的时间延迟。 操作内容:PC<-(PC)+l 字节数: 1 机器周期:1 以O开头的指令有8条,分别为: ORL A,Rn ORL A,direct ORL A,@Ri ORL A,#data ORL direct,A ORL direct,#data ORL C,bit ORL C,,bit 1、ORL A,Rn 指令名称:逻辑或操作指令 指令代码:48H~4FH 指令功能:累加器内容与寄存器内容进行逻辑或操作 操作内容:A1<-(A)|(Rn), n,0~7 字节数: 1 机器周期:1 2、ORL A,direct 指令名称:逻辑或操作指令 指令代码:45H 操作内容:A<-(A)|(direct) 字节数: 2 机器周期:1 3、ORL A,@Ri 指令名称:逻辑或操作指令 指令代码:46H~47H 指令功能:累加器内容与内部RAM低128单元内容进行逻辑或操作 操作内容:A<-(A)|((Ri)); i,0,1 字节数: 1 机器周期:1 4、ORL A,#data 指令名称:逻辑或操作指令 指令代码:44H 指令功能:累加器内容与立即数进行逻辑或操作 操作内容:A<-(A)|data 字节数: 2 机器周期:1 5、ORL direct,A 指令名称:逻辑或操作指令 指令代码:42H 指令功能:内部RAM低128单元或专用寄存器内容与累加器内容进行逻辑或操作 操作内容:direct<-(direct)|(A) 字节数: 2 机器周期:1 6、ORL direct,#data 指令名称:逻辑或操作指令 指令代码:43H 指令功能:内部RAM低128单元或专用寄存器内容与立即数进行逻辑或操作。 操作内容:direct<-(direct)|data 字节数: 3 机器周期:2 7、ORL C,bit 指令名称:位逻辑或操作指令 指令代码:72H 累加位C状态与内部RAM可寻址位或专用寄存器指定位进行逻辑或操作指令功能: 操作内容:C<-(C)|(bit) 字节数: 2 机器周期:2 8、ORL C,,bit 指令名称:位反逻辑或操作指令 指令代码:A0H 指令功能:累加位C状态与内部RAM可寻址位或专用寄存器指定位的反进行逻辑或操作 操作内容:C<-(C)|(bit非) 字节数: 2 机器周期:2 使用说明:指定位的状态取反后进行逻辑或操作,但并不改变指定位的原来状态。 以P开头的指令有2条,分别为: POP direct PUSH direct 1、POP direct 指令名称:出栈指令 指令代码:D0H 指令功能:堆栈栈顶单元的内容送内部RAM低128单元或专用寄存器 操作内容:direct<-(SP) SP<-(SP)-1 字节数: 2 机器周期:2 2、PUSH direct 指令名称:进栈指令 指令代码:C0 指令功能:内部RAM低128单元或专用寄存器内容送堆栈栈顶单元 操作内容:SP<-(SP)+1 (SP)<-(direct) 字节数: 2 机器周期:2 以M开头的指令有24条,分别为: MOV A,Rn MOV A,direct MOV A,@Ri MOV A,#data MOV Rn,A MOV Rn,direct MOV Rn,#data MOV direct,A MOV direct,Rn MOV direct2,direct1 MOV direct, @Ri MOV direct,#data MOV @Ri,A MOV @Ri,direct MOV @Ri,data MOV C,bit MOV bit,C MOV DPTR,#datal6 MOVC A,@A+DPTR MOVC A,@A+PC MOVX A,@Ri MOVX A,@DPTR MOVX @Ri,A MOVX @DPTR,A MUL AB 1、MOV A,Rn 指令名称:寄存器数据传送指令 指令代码:E8H~EFH 指令功能:寄存器内容送累加器 操作内容:A<-(Rn), n,0~7 字节数: 1 机器周期:1 2、MOV A,direct 指令名称:直接寻址数据传送指令 指令代码:E5H 指令功能:内部RAM低126单元或专用寄存器内容送累加器 操作内容:A<-(direct) 字节数: 2 机器周期:1 3、MOV A,@Ri 指令名称:间接寻址数据传送指令 指令代码:E6H~E7H 指令功能:内部RAM低128单元内容送累加器 操作内容:A<-((Ri)), i,0,1 字节数: 1 机器周期:1 4、MOV A,#data 指令名称:立即数据传送指令 指令代码:74H 指令功能:立即数送累加器 操作内容:A<-data 字节数: 2 机器周期:1 5、 MOV Rn,A 指令名称:累加器数据传送指令 指令代码:F8H~FFH 指令功能:累加器内容送寄存器 操作内容:Rn<-(A) 字节数: 1 机器周期:1 6、MOV Rn,direct 指令名称:直接寻址数据传送指令 指令代码:A8H~AFH 指令功能:内部RAM低128单元或专用寄存器内容送累加器 操作内容:Rn<-(direct),n,0~7 字节数: 2 机器周期:2 7、MOV Rn,#data 指令名称:立即数据传送指令 指令代码:78H~7FH 指令功能:立即数送寄存器 操作内容:Rn<-data,n,0~7 字节数: 2 机器周期:1 8、MOV direct,A 指令名称:累加器数据传送指令 指令代码:F5H 指令功能:累加器内容送内部RAM低128单元或专用寄存器 操作内容:direct<-(A) 字节数: 2 机器周期:1 9、MOV direct,Rn 指令名称:寄存器数据传送指令 指令代码:88H~8FH 指令功能:寄存器内容送内部RAM低128单元或专用寄存器 操作内容:direct<-(Rn), n,0~7 字节数: 2 机器周期:2 10、MOV direct2,direct1 指令名称:直接寻址数据传送指令 指令代码:85H 指令功能:内部RAM低123单元或专用寄存器之间的相互传送 操作内容:direct2<-(direct1) 字节数: 3 机器周期:2 11、MOV direct, @Ri 指令名称:间接寻址数据传送指令 指令代码:86H~87H 指令功能:内部RAM低128单元内容送内部RAM低128单元或专用寄存器 操作内容:direct<-((Ri)),i,0,1 字节数: 2 机器周期:2 12、MOV direct,#data 指令名称:立即数传送指令 指令代码:75H 指令功能:立即数送内部RAM低128单元或专用寄存器 data 操作内容:direct<- 字节数: 3 机器周期:2 13、MOV @Ri,A 指令名称:累加器数据传送指令 指令代码:F6H~F7H 指令功能:累加器内容送内部RAM低128单元 操作内容:(Ri)<-(A),i,0,1 字节数: 1 机器周期:1 14、MOV @Ri,direct 指令名称:直接寻址数据传送指令 指令代码:A6H~A7H 指令功能:内部RAM低128单元或专用寄存器内容送内部RAM低128单元 操作内容:(Ri)<-(direct), i,0,1 字节数: 2 机器周期:2 15、MOV @Ri,data 指令名称:立即数传送指令 指令代码:76H~77H 指令功能:立即数送内部RAM低128单元 操作内容:(Ri)<-data, i,0,1 字节数: 2 机器周期:1 16、MOV C,bit 指令名称:位数据传送指令 指令代码:A2H 指令功能:内部RAM可寻址位或专用寄存器的位状态送累加位C 操作内容:C<-(bit) 字节数: 2 机器周期:1 17、MOV bit,C 指令名称:累加位数据传送指令 92H 指令代码: 指令功能:累加器状态送内部RAM可寻址位或专用寄存器的指定位 操作内容:bit<-(C) 字节数: 2 机器周期:2 18、MOV DPTR,#datal6 指令名称:十六位数据传送指令 指令代码:90H 指令功能:十六位立即数送数据指针 操作内容:DPH<-datal5~8 DPL<-data7~0 字节数: 3 机器周期:2 19、MOVC A,@A+DPTR 指令名称:程序存储器读指令 指令代码:93H 指令功能:读程序存储器单元内容送累加器 操作内容:A<-((A)+(DPTR)) 字节数: 1 机器周期:2 使用说明:变址寄存器A内容加基址寄存器DPTR内容时,低8位产生的进位直接加到高位, 不影响进位标志。 20、MOVC A,@A+PC 指令名称:程序存储器读指令 指令代码:83H 指令功能:读程序存储器单元内容送累加器 操作内容:A<-((A)+(PC)) 字节数: 1 机器周期:2 使用说明:同MOVC A,@A+DPTR指令(序号70) 21、MOVX A,@Ri 指令名称:寄存器间接寻址外部RAM读指令 指令代码:E2H~E3H 指令功能:读外部RAM低256单元数据送累加器 字节数: 1 机器周期:2 22、MOVX A,@DPTR 指令名称:数据指针间接寻址外部RAM读指令 指令代码:E0H 指令功能:读外部RAM单元数据送累加器 操作内容:A1<-((DPTR)) 字节数: 1 机器周期:2 23、MOVX @Ri,A 指令名称:寄存器间接寻址外部RAM写指令 指令代码:F2H~F3H 指令功能:把累加器内容写入外部RAM低256单元 操作内容:(Ri)<-(A),i,1,0 字节数: 1 机器周期:2 24、MOVX @DPTR,A 指令名称:数据指针间接寻址外部RAM写指令 指令代码:F0H 指令功能:把累加器内容写入外部RAM单元 操作内容:(DPTR)<-(A) 字节数: 1 机器周期:2 25、MUL AB 指令名称:乘法指令 指令代码:A4H 指令功能:实现8位无符号数乘法运算。两个乘数分别放在累加器A和寄存器B中。乘积 为16位,低8位在B中,高8位在A中。 操作内容:AB<-(A)×(B) 字节数: 1 机器周期:4 影响标志位:进位标志复位。若乘积大于255,则OV标志置位;否则复位。 以J开头的指令有8条,分别为: JB bit,rel JBC bit,rel JC rel JMP @A+DPTR JNB bit,rel JNC rel JNZ rel JZ rel 1、JB bit,rel 指令名称:位条件转移指令。 指令代码:20H 指令功能:根据指定位的状态,决定程序是否转移。若为1则转移;否则顺序执行。 操作内容:若(bit),1,则PC<-(PC)+3+rel 若(bit)?1,则PC<-(PC)+3 字节数: 3 机器周期:2 2、JBC bit,rel 指令名称:位条件转移清0指令 指令代码:10H 指令功能:对指定位的状态进行测试。若为1,则把该位清0并进行转移;否则程序顺序执行。 操作内容:若(bit),1,则PC<-(PC)+3+rel,bit<-0 若(bit)?1,则PC<-(PC)+3 字节数: 3 机器周期:2 3、JC rel 指令名称:累加位条件转移指令 指令代码:40H 指令功能:根据累加位(C)的状态决定程序是否转移,若为1则转移,否则顺序执行。 操作内容:若(C),1,则PC<-(PC)+2+rel 若(C)?1,则PC<-(PC)+2 字节数: 2 机器周期:2 4、JMP @A+DPTR 指令名称:无条件间接转移指令 指令代码:72H 指令功能:A内容与DPTR内容相加作为转移目的地址,进行程序转移。 (A)+(DPTR) 操作内容:PC<- 字节数: 1 机器周期;2 5、JNB bit,rel 指令名称:位条件转移指令 指令代码:30H 指令功能:根据指定位的状态,决定程序是否转移。若为0则转移;否则顺序执行。 操作内容:若(bit),0,则PC<-(PC)+3+rel 若(bit)?0,则PC<-(PC)+3 字节数: 3 机器周期:2 6、JNC rel 指令名称:累加位条件转移指令 指令代码:50H 指令功能:根据累加位(C)的状态决定程序是否转移。若为o则转移;否则顺序执行。 操作内容:若(C),0,则PC<-(PC)+2+rel 若(C)?0,则PC<-(PC)+2 字节数: 2 机器周期:2 7、JNZ rel 指令名称:判0转移指令 指令代码:70H 累加位(A)的内容不为0,则程序转移;否则程序顺序执行。 指令功能: 操作内容:若(A)?0,则PC<-(PC)+2+rel 若(A),0,则PC<-(PC)+2 字节数: 2 机器周期:2 8、JZ rel 指令名称:判0转移指令 指令代码:60H 指令功能:累加位(A)的内容为o,则程序转移;否则程序顺序执行。 操作内容:若(A),0,则PC<-(PC)+2+rel 若(A)?0,则PC<-(PC)+2 字节数: 2 机器周期:2 以L开头的指令就2条,分别为: LCALL addr16 LJMP addrl6 1、LCALL addr16 指令名称:长调用指令 指令代码:12H 指令功能:按指令给定地址进行子程序调用 操作内容:PC<-(PC)+3 SP<-(SP)+1 (SP)<-(PC)7~0 SP<-(SP)+1 (SP)<-(PC)15~8 PC<-addrl6 字节数: 3 机器周期:2 使用说明:在64KB的范围内调用子程序 2、LJMP addrl6 指令名称:长转移指令 指令代码:02H 指令功能:使程序按指定地址进行无条件转移 操作内容:PC<-addrl6 字节数: 3 机器周期:2 分别为: 以D开头的指令有8条, DA A DEC A DEC Rn DEC direct DEC @Ri DIV AB DJNZ Rn,rel DJNZ direct,rel 1、DA A 指令名称:十进制调整指令 指令代码:D4H 指令功能:对BCD码加法运算的结果进行有条件的修正 操作内容:若(A)3~0,9|(AC),1,则A3~0<-(A)3~0+6 若(A)7~4,9|(C),1,则A7~4<-(A)7~4+6 若(A)7~4,9^(A)3~0,9,则A7~4<-(A)7~4+6 字节数: 1 机器周期:1 使用说明:DA指令不影响溢出标志 2、DEC A 指令名称:累加器减1指令 指令代码:14H 指令功能:累加器内容减1 操作内容:A<-(A)-1 字节数: 1 机器周期:1 3、DEC Rn 指令名称:寄存器减1指令 指令代码:18H~1FH 指令功能:寄存器内容减1 操作内容:Rn<-(Rn)-1,n,0~7 字节数: 1 机器周期:1 4、DEC direct 指令名称:直接寻址减1指令 指令代码:15H 指令功能:内部RAM低128单元及专用寄存器内容减1 操作内容:direct<-(direct)-1 字节数: 2 机器周期:1 5、DEC @Ri 指令名称:间接寻址减1指令 指令代码:16H~17H 指令功能:内部RAM低128单元内容减1 操作内容:(Ri)<-((Ri))-1, i,0,1 字节数: 1 机器周期:1 6、DIV AB 指令名称:无符号数除法指令; 指令代码:84H 指令功能:A的内容被B的内容除。指令执行后,商存于A中,余数存于B中。 操作内容:A<-(A),(B)的商 B<-(A),(B)的余数 字节数: 1 机器周期:4 影响标志位:C被清0;若B,00H,除法无法进行,并使OV,1;否则OV,0。 7、DJNZ Rn,rel 指令名称:寄存器减1条件转移指令 指令代码:D8H~DFH 指令功能:寄存器内容减1。不为0转移;为0顺序执行。 操作内容:Rn<-(Rn)-l,n,0~7 若(Rn)?0,则PC<-(PC)+2+rel 若(Rn),0,则PC<-(PC)+2 字节数: 2 机器周期:2 8、DJNZ direct,rel 指令名称:直接寻址单元减1条件转移指令 指令代码:D5H 内部RAM低128单元内容减1。不为0转移;为0顺序执行。指令功能: 操作内容:direct<-(direct)-1 若(direct)?0,则PC<-(PC)+3+rel 若(direct),0,则PC<-(PC)+3 字节数: 3 机器周期:2 以I开头的指令有5条,分别为: INC A INC Rn INC direct INC @Ri INC DPTR 1、INC A 指令名称:累加器加1指令 指令代码:04H 指令功能:累加器内容加1 操作内容:A<-(A)+1 字节数: 1 机器周期:1 2、INC Rn 寄存器加1指令指令名称: 指令代码:08H~0FH 指令功能:寄存器内容加1 操作内容:Rn<-(Rn)+1,n,0~7 字节数: 1 机器周期:1 3、INC direct 指令名称:直接寻址单元加1指令 指令代码:05H 指令功能:内部BAM低128单元或专用寄存器内容加1 操作内容:direct<-(direct)+1 字节数: 2 机器周期:1 4、INC @Ri 指令名称:间接寻址单元加1指令 指令代码:06H~07H 指令功能:内部RAM低128单元内容加1 操作内容:(Ri)<-((Ri))+1;i,0,l 字节数: 1 机器周期:1 5、INC DPTR 指令名称:16位数据指针加1指令 指令代码:A3H 指令功能:数据指针寄存器DPTR内容加1 操作内容:DPTR<-(DPTR)+1 字节数: 1 机器周期:2 以C开头的指令有10条,分别为: CJNE A,dircet,rel CJNE A,#data,rel CJNE Rn,#data,rel CJNE @Ri,#data,rel CLR A CLR C CLR bit CPL A CPL C CPL bit 1、CJNE A,dircet,rel 指令名称:数值比较转移指令 指令代码:B5H 指令功能:累加器内容与内部RAM低128字节或专用寄存器内容比较,不等则转移。 操作内容:若(A),(direct),则PC<-(PC)+3,C<-0 若(A),(direct),则PC<-(PC)+3+rel,C<-0 若(A),(direct),则PC<-(PC)+3+rel,C<-1 字节数: 3 机器周期:2 2、CJNE A,#data,rel 指令名称:数值比较转移指令 指令代码:B4H 指令功能:累加器内容与立即数比较,不等则转移。 操作内容:若(A),data,则PC<-(PC)+3,C<-0 若(A),data,则PC<-(PC)+3+rel,C<-0 若(A),data,则PC<-(PC)+3+rel,C<-1 字节数: 3 机器周期:2 3、CJNE Rn,#data,rel 指令名称:数值比较转移指令 指令代码:B8H~BFH 寄存器内容与立即数比较,不等则转移。 指令功能: 操作内容:若(Rn),data,则PC<-(PC)+3,C<-0 若(Rn),data,则PC<-(PC)+3+rel,C<-0 若(Rn),data,则PC<-(PC)+3+rel,C<-1 字节数: 3 机器周期:2 4、CJNE @Ri,#data,rel 指令名称:数值比较转移指令 指令代码:B6H~B7H 指令功能:内部RAM低128单元内容与立即数比较,不等则转移。 操作内容:若((Ri))=data,则PC<-(PC)+3,C<-0 若((Ri)),data,则PC<-(PC)+3+rel,C<-0 若((Ri)),data,则PC<-(PC)+3+rel,C<-1 字节数: 3 机器周期:2 5、CLR A 指令名称:累加器清0指令 指令代码:E4H 指令功能:累加器清0 操作内容:A<-0 字节数: 1 机器周期:1 6、CLR C 指令名称:进位标志清0指令 指令代码:C3H 指令功能:进位位清0 操作内容:C<-0 字节数: 1 机器周期:1 7、CLR bit 指令名称:直接寻址位清0指令 指令代码:C2H 指令功能:直接寻址位清0 操作内容:bit<-0 字节数: 2 机器周期:1 8、CPL A 指令名称:累加器取反指令 指令代码:F4H 指令功能:累加器取反 操作内容:A<-(A) 字节数: 1 机器周期:1 9、CPL C 指令名称:进位标志取反指令 指令代码:B3H 指令功能:进位标志位状态取反 操作内容:C<-(c取反) 字节数: 1 机器周期:1 10、 CPL bit 指令名称:直接寻址位取反指令 指令代码:B2H 指令功能:直接寻址位取反 操作内容:bit<-(bit取反) 字节数: 2 机器周期:1 MCS-51系列单片机指令以A开头的指令有18条,分别为: ACALL addr11 ADD A,Rn ADD A,direct ADD A,@Ri ADD A,#data ADDC A,Rn ADDC A,direct ADDC A,@Ri ADDC A,#data AJMP addr11 ANL A,Rn ANL A,direct ANL A,@Ri ANL A,#data ANL direct,A ANL direct,#data ANL C,bit ANL C,/bit 1、ACALL addr11 指令名称:绝对调用指令 指令代码:{A10,A9,A8,10001},A[7:0] 指令功能:构造目的地址,进行子程序调用。其方法是以指令提供的11位地址(al0~a0),取代 PC的低11位,PC的高5位不变。 操作内容: PC<-(PC)+2 SP<-(SP)+1 (SP)<-(PC)7~0 SP<-(SP)+1 (SP)<-(PC)15~8 PC10~0<-addrl0~0 字节数: 2 机器周期:2 使用说明:由于指令只给出子程序入口地址的低11位,因此调用范围是2KB。 2、ADD A,Rn 指令名称:寄存器加法指令 指令代码:28H~2FH 指令功能:累加器内容与寄存器内容相加 操作内容:A<-(A)+(Rn), n,0~7 字节数: 1 机器周期;1 影响标志位:C,AC,OV 3、ADD A,direct 指令名称:直接寻址加法指令 指令代码:25H 指令功能:累加器内容与内部RAM单元或专用寄存器内容相加 操作内容:A<-(A)+(direct) 字节数: 2 机器周期:1 影响标志位:C,AC,OV 4、ADD A,@Ri 指令名称:间接寻址加法指令 指令代码:26H~27H 指令功能:累加器内容与内部RAM低128单元内容相加 操作内容:A<-(A)+((Ri)), i,0,1 字节数: 1 机器周期:1 影响标志位:C,AC,OV 5、ADD A,#data 指令名称:立即数加法指令 指令代码:24H 指令功能:累加器内容与立即数相加 操作内容:A<-(A)+data 字节数: 2 机器周期:1 影响标志位:C,AC,OV 6、ADDC A,Rn 指令名称:寄存器带进位加法指令 指令代码:38H~3FH 指令功能:累加器内容、寄存器内容和进位位相加 操作内容:A<-(A)+(Rn)+(C), n,0~7 字节数: 1 机器周期:1 影响标志位:C,AC,OV 7、ADDC A,direct 指令名称:直接寻址带进位加法指令 指令代码:35H 指令功能:累加器内容、内部RAM低128单元或专用寄存器内容与进位位加 操作内容:A<-(A)+(direct)+(C) 字节数: 2 机器周期:1 影响标志位:C,AC,OV 8、ADDC A,@Ri 指令名称:间接寻址带进位加法指令 指令代码:36H~37H 累加器内容、内部RAM低128单元内容及进位位相加 指令功能: 操作内容:A<-(A)+((Ri))+(C), i,0,1 字节数: 1 机器周期:1 影响标志位:C,AC,OV 9、ADDC A,#data 指令名称:立即数带进位加法指令 指令代码:34H 指令功能:累加器内容、立即数及进位位相加 操作内容:A<-(A)+data+(C) 字节数: 2 机器周期:1 影响标志位:C,AC,OV 10、AJMP addr11 指令名称:绝对转移指令 指令代码:{A10,A9,A8,00001},A[7:0] 指令功能:构造目的地址,实现程序转移。其方法是以指令提供的11位地址,取代PC的低11 位,(而PC的高5位保持不变。 操作内容:PC<-(PC)+2 PCl0~0<-addrll 字节数: 2 机器周期:2 使用说明:由于addrll的最小值是000H,最大值是7FFH,因此地址转移范围是2KB。 11、ANL A,Rn 指令名称:寄存器逻辑与指令 指令代码:58H~5FH 指令功能:累加器内容逻辑与寄存器内容 操作内容:A<-(A)^(Rn), n,0~7 字节数: 1 机器周期:1 12、ANL A,direct 指令名称:直接寻址逻辑与指令 指令代码:55H 指令功能:累加器内容逻辑与内部RAM低128单元或专用寄存器内容 操作内容:A<-(A)^(diret) 字节数: 2 机器周期:1 13、ANL A,@Ri 指令名称:间接寻址逻辑与指令 指令代码:56H~57H 指令功能:累加器内容逻辑与内部RAM低128单元内容 操作内容:A<-(A)^((Ri)) i,0,1 字节数: 1 机器周期:1 14、ANL A,#data 立即数逻辑与指令指令名称: 指令代码:54H 指令功能:累加器内容逻辑与立即数 操作内容:A<-(A)^data 字节数: 2 机器周期:1 15、ANL direct,A 指令名称:累加器逻辑与指令 指令代码:52H 指令功能:内部RAM低128单元或专用寄存器内容逻辑与累加器内容 操作内容:direct<-(A)^(direct) 字节数: 2 机器周期:1 16、ANL direct, #data 指令名称:逻辑与指令 指令代码:53H 指令功能:内部RAM低128单元或专用寄存器内容逻辑与立即数 操作内容:direct<-(direct)^data 字节数: 3 机器周期:2 17、ANL C,bit 指令名称:位逻辑与指令 指令代码:82H 指令功能:进位标志逻辑与直接寻址位 -(C)^(bit) 操作内容:C< 字节数: 2 机器周期:2 18、ANL C,,bit 指令名称:位逻辑与指令 指令代码:B0H 指令功能:进位标志逻辑与直接寻址位的反 操作内容:C<-(C)^(bit) 字节数: 2 机器周期:2
本文档为【[知识]经典的51单片机汇编指令详解】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_624976
暂无简介~
格式:doc
大小:62KB
软件:Word
页数:0
分类:企业经营
上传时间:2017-10-22
浏览量:22