51单片机指令速查表 - 图文

发布时间 : 星期五 文章51单片机指令速查表 - 图文更新完毕开始阅读

MCS-51系列单片机指令速查表

算术运算指令 (共24条) 机器码 助记符 功能 (A)+(Rn)→A (A)+(direct)→A (A)+((Ri))→A (A)+ data →A (A)+(Rn)+Cy →A (A)+(direct)+ Cy →A (A)+((Ri))+Cy →A (A)+ data +Cy →A (A)-(Rn)-Cy →A (A)-(direct)-Cy →A (A)-((Ri))-Cy →A (A)- data - Cy →A (A)+ 1 →A (Rn)+ 1→Rn (direct)+ 1 →direct ((Ri))+ 1 →(Ri) (DPTR)+ 1 →DPTR (A)- 1 →A (Rn)- 1→Rn (direct)- 1 →direct ((Ri))- 1 →(Ri) (A)·(B)→AB (A)/(B)→AB 对A进行十进制调整 P √ √ √ √ √ √ √ √ √ √ √ √ √ × × × × √ × × × √ √ √ 28~2F ADD A,Rn 25 24 35 36,37 34 95 94 04 05 A3 14 15 A4 84 D4 ADD A,direct ADD A,#data ADDC A,direct ADDC A,@Ri ADDC A,#data SUBB A,direct SUBB A,#data INC A INC direct INC DPTR DEC A DEC direct MUL AB DIV AB DA A 26,27 ADD A,@Ri 38~3F ADDC A,Rn 98~9F SUBB A,Rn 96,97 SUBB A,@Ri 08~0F INC Rn 06,07 INC @Ri 18~1F DEC Rn 16,17 DEC @Ri 对标志影响 字节数 周期数 OV AC CY √ √ √ 1 1 √ √ √ 2 1 √ √ √ 1 1 √ √ √ 2 1 √ √ √ 1 1 √ √ √ 2 1 √ √ √ 1 1 √ √ √ 2 1 √ √ √ 1 1 √ √ √ 2 1 √ √ √ 1 1 √ √ √ 2 1 × × × 1 1 × × × 1 1 × × × 2 1 × × × 1 1 × × × 1 2 × × × 1 1 × × × 1 1 × × × 2 1 × × × 1 1 × × √ 1 4 × × √ 1 4 √ √ √ 1 1 逻辑运算指令 (共25条) 机器码 助记符 功能 (A)∧(Rn)→A (A)∧(direct)→A (A)∧((Ri))→A (A)∧ data →A (direct)∧(A)→direct (A)∨(Rn)→A (A)∨(direct)→A (A)∨((Ri))→A (A)∨ data →A P √ √ √ √ × × √ √ √ √ 58~5F ANL A,Rn 55 54 52 53 45 44

ANL A,direct ANL A,#data ANL direct,A 56,57 ANL A,@Ri ANL direct,#data (direct)∧ data →direct ORL A,direct ORL A,#data 48~4F ORL A,Rn 46,47 ORL A,@Ri 对标志影响 OV AC × × × × × × × × × × × × × × × × × × × × CY × × × × × × × × × × 字节数 周期数 1 2 1 2 2 3 1 2 1 2 1 1 1 1 1 2 1 1 1 1 1

42 43 65 64 62 63 E4 F4 23 33 03 13 C4 ORL direct,A (direct)∨(A)→direct (A)⊕(Rn)→A (A)⊕(direct)→A (A)⊕((Ri))→A (A)⊕ data →A (direct)⊕(A)→direct 0 →A /(A)→A A循环左移一位 A带进位循环左移一位 A循环右移一位 A带进位循环右移一位 A半字节交换 × × √ √ √ √ × × √ × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × 2 3 1 2 1 2 2 3 1 1 1 1 1 1 1 1 2 1 1 1 1 1 2 1 1 1 1 1 1 1 ORL direct,#data (direct)∨ data →direct XRL A,direct XRL A,#data XRL direct,A CLR A CPL A RL A RLC A RR A RRC A SWAP A 68~6F XRL A,Rn 66,67 XRL A,@Ri XRL direct,#data (direct)⊕ data →direct 数据传送指令 (共28条) 机器码 助记符 功能 (Rn)→A (direct)→A ((Ri))→A data →A (A)→(Rn) (direct)→Rn data →Rn (A)→direct (Rn)→direct ((Ri))→direct data→direct (A)→(Ri) direct →(Ri) data →(Ri) P √ √ √ √ × × × × × × × × × × × × × × √ √ √ × × E8~EF MOV A,Rn E5 74 MOV A,direct MOV A,#data E6,E7 MOV A,@Ri F8~FF MOV Rn,A A8--AF MOV Rn,direct 78~7F MOV Rn,#data F5 85 75 MOV direct,A 88~8F MOV direct,Rn 86,87 MOV direct,@Ri MOV direct,#data F6,F7 MOV @Ri,A A6,A7 MOV @Ri,direct 76,77 MOV @Ri,#data 90 93 83 E0 F2,F3 F0 C0

MOV direct1,direct2 (direct2) →direct1 MOV DPTR,#data16 data16 →DPTR MOVC A,@A+DPTR ((A)+(DPTR))→A MOVC A,@A+PC MOVX A,@DPTR MOVX @Ri,A MOV @DPTR,A PUSH direct ((A)+(PC))→A ((Ri)+P2) →A ((DPTR)) →A (A)→(Ri)+(P2) (A)→(DPTR) (SP)+1→SP (direct)→SP E2,E3 MOVX A,@Ri 对标志影响 OV AC × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × CY × × × × × × × × × × × × × × × × × × × × × × × 字节数 周期数 1 2 1 2 1 2 2 2 2 3 2 3 1 2 2 3 1 1 1 1 1 1 2 1 1 1 1 1 2 1 1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2

D0 C5 POP direct XCH A,direct ((direct))→direct (SP)-1→SP (A)← →(Rn) (A)← →(direct) (A)← →((Ri)) (A)0--3← →((Ri))0--3 × √ √ √ √ × × × × × × × × × × × × × × × 2 1 2 1 1 2 1 1 1 1 C8~8F XCH A,Rn C6,C7 XCH A,@Ri D6,D7 XCHD A,@Ri 位操作指令 (共12条) 机器码 C3 C2 D3 D2 B3 B2 82 B0 72 A0 A2 92 助记符 CLR C CLR bit SETB C SETB bit CPL C CPL bit ANL C,bit ANL C,/bit ORL C,bit ORL C,/bit MOV C,bit MOV bit,C 0 → Cy 0 → bit 1 → Cy 1 → bit /(Cy) → Cy /(bit) → bit (Cy)∧ (bit) → Cy (Cy)∧ /(bit) → Cy (Cy)∨ (bit) → Cy (Cy)∨ /(bit) → Cy (bit)→ Cy (Cy)→ bit 功能 对标志位影响 字节数 周期数 P OV AC CY × × × √ 1 1 × × × 2 1 × × × √ 1 1 × × × 2 1 × × × × × × × × × × × × × × × × × × × × × × × × √ 1 2 2 2 2 2 2 2 1 1 2 2 2 2 1 1 √ √ √ √ √ √ 控制转移指令 (共22条) 机器码 助记符 功能 (PC)+2→PC (SP)+1→SP (PC)L→SP (SP)+1→SP (PC)H→SP addr11→PC10~0 (PC)+2→PC (SP)+1→SP (PC)L→SP (SP)+1→SP (PC)H→SP addr16→PC ((SP))→PCH (SP)-1→SP ((SP))→PCL (SP)-1→SP ((SP))→PCH (SP)-1→SP ((SP))→PCL (SP)-1→SP 从中断返回 addr11 →PC10~0 addr16 →PC (PC)+(rel) →PC (A)+(DPTR)→PC (PC)+2→PC 若(A)=0,(PC)+(rel)→PC (PC)+2→PC 若(A)≠0,(PC)+(rel)→PC (PC)+2→PC 若(Cy)=1,(PC)+(rel)→PC (PC)+2→PC 若(Cy)=0,(PC)+(rel)→PC 对标志影响 字节数 周期数 P OV AC CY × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × 2 3 1 1 2 3 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3

*1 12 22 32 *1 02 80 73 60 70 40 50

ACALL addr11 LCALL addr16 RET RETI AJMP addr11 LJMP addr16 SJMP rel JMP @A+DPTR JZ rel JNZ rel JC rel JNC rel 20 30 10 B5 JB bit,rel JNB bit,rel JBC bit,rel CJNE A,direct,rel (PC)+3→PC 若(bit)=1,(PC)+(rel)→PC (PC)+3→PC 若(bit)≠1,(PC)+(rel)→PC (PC)+3→PC 若(bit)=1,0 → bit, (PC)+(rel)→PC (PC)+3→PC 若(A)≠(direct),则(PC)+(rel)→PC 若(A)<(direct),则1→Cy (PC)+3→PC 若(A)≠data,则(PC)+(rel)→PC 若(A) × × × × × × × × × × × × × × √ √ 3 3 3 3 2 2 2 2 B4 CJNE A,#data,rel × × × √ 3 2 (PC)+3→PC B8~8F CJNE Rn,#data,rel 若(Rn)≠data,则(PC)+(rel)→PC 若(Rn) (PC)+3→PC CJNE @Ri, #data, 若((Ri))≠data,则(PC)+(rel)→PC B6,B7 rel 若((Ri)) D8--DF DJNZ Rn,rel D5 00 DJNZ direct,rel NOP (PC)+2→PC,(Rn)-1→Rn 若(Rn)≠0,则(PC)+(rel)→PC (PC)+2→PC,(direct)-1→direct 若(direct)≠0,则(PC)+(rel)→PC 空操作 × × × √ 3 2 × × × × × × × × × × × × √ × × × 3 3 3 1 2 2 2 1 伪指令(共7条) 伪指令 ORG EQU BIT DB DW DS END 功能 规定本条指令下面的程序和数据的起始地址 将一个常数或汇编符号赋给字符名,相当于C语言的define 将BIT之后的位地址值赋给字符名 从指定的ROM地址单元开始存入DB后面的数据,这些数据可以是用逗号隔开的字节串或括在单引号中的ASCII字符串 从指定的ROM地址开始,在连续的单元中定义双字节数据 格式 ORG Addr16 字符名 EQU 常数或汇编符号 字符名 BIT 位地址 DB 8位数据表 DW 16位数据表 从指令地址开始保留DS之后表达式的值所规定的存储单元数,以备DS 表达式 后用 用来指示源程序到此全部结束 END 4

联系合同范文客服:xxxxx#qq.com(#替换为@)