算术运算指令 (共24条)
机器码 | 助记符 | 功能 | 对标志影响 | 字节数 | 周期数 | |||
P | OV | AC | CY | |||||
28~2F | ADD A,Rn | (A)+(Rn)→A | √ | √ | √ | √ | 1 | 1 |
25 | ADD A,direct | (A)+(direct)→A | √ | √ | √ | √ | 2 | 1 |
26,27 | ADD A,@Ri | (A)+((Ri))→A | √ | √ | √ | √ | 1 | 1 |
24 | ADD A,#data | (A)+ data →A | √ | √ | √ | √ | 2 | 1 |
38~3F | ADDC A,Rn | (A)+(Rn)+Cy →A | √ | √ | √ | √ | 1 | 1 |
35 | ADDC A,direct | (A)+(direct)+ Cy →A | √ | √ | √ | √ | 2 | 1 |
36,37 | ADDC A,@Ri | (A)+((Ri))+Cy →A | √ | √ | √ | √ | 1 | 1 |
34 | ADDC A,#data | (A)+ data +Cy →A | √ | √ | √ | √ | 2 | 1 |
98~9F | SUBB A,Rn | (A)-(Rn)-Cy →A | √ | √ | √ | √ | 1 | 1 |
95 | SUBB A,direct | (A)-(direct)-Cy →A | √ | √ | √ | √ | 2 | 1 |
96,97 | SUBB A,@Ri | (A)-((Ri))-Cy →A | √ | √ | √ | √ | 1 | 1 |
94 | SUBB A,#data | (A)- data - Cy →A | √ | √ | √ | √ | 2 | 1 |
04 | INC A | (A)+ 1 →A | √ | × | × | × | 1 | 1 |
08~0F | INC Rn | (Rn)+ 1→Rn | × | × | × | × | 1 | 1 |
05 | INC driect | (direct)+ 1 →direct | × | × | × | × | 2 | 1 |
06,07 | INC @Ri | ((Ri))+ 1 →(Ri) | × | × | × | × | 1 | 1 |
A3 | INC DPTR | (DPTR)+ 1 →DPTR | × | × | × | × | 1 | 2 |
14 | DEC A | (A)- 1 →A | √ | × | × | × | 1 | 1 |
18~1F | DEC Rn | (Rn)- 1→Rn | × | × | × | × | 1 | 1 |
15 | DEC driect | (direct)- 1 →direct | × | × | × | × | 2 | 1 |
16,17 | DEC @Ri | ((Ri))- 1 →(Ri) | × | × | × | × | 1 | 1 |
A4 | MUL AB | (A)·(B)→AB | √ | × | × | √ | 1 | 4 |
84 | DIV AB | (A)/(B)→AB | √ | × | × | √ | 1 | 4 |
D4 | DA A | 对A进行十进制调整 | √ | √ | √ | √ | 1 | 1 |
逻辑运算指令 (共25条)
机器码 | 助记符 | 功能 | 对标志影响 | 字节数 | 周期数 | |||
P | OV | AC | CY | |||||
58~5F | ANL A,Rn | (A)∧(Rn)→A | √ | × | × | × | 1 | 1 |
55 | ANL A,direct | (A)∧(direct)→A | √ | × | × | × | 2 | 1 |
56,57 | ANL A,@Ri | (A)∧((Ri))→A | √ | × | × | × | 1 | 1 |
54 | ANL A,#data | (A)∧ data →A | √ | × | × | × | 2 | 1 |
52 | ANL direct,A | (direct)∧(A)→direct | × | × | × | × | 2 | 1 |
53 | ANL direct,#data | (direct)∧ data →direct | × | × | × | × | 3 | 2 |
48~4F | ORL A,Rn | (A)∨(Rn)→A | √ | × | × | × | 1 | 1 |
45 | ORL A,direct | (A)∨(direct)→A | √ | × | × | × | 2 | 1 |
46,47 | ORL A,@Ri | (A)∨((Ri))→A | √ | × | × | × | 1 | 1 |
44 | ORL A,#data | (A)∨ data →A | √ | × | × | × | 2 | 1 |
42 | ORL direct,A | (direct)∨(A)→direct | × | × | × | × | 2 | 1 |
43 | ORL direct,#data | (direct)∨ data →direct | × | × | × | × | 3 | 2 |
68~6F | XRL A,Rn | (A)⊕(Rn)→A | √ | × | × | × | 1 | 1 |
65 | XRL A,direct | (A)⊕(direct)→A | √ | × | × | × | 2 | 1 |
66,67 | XRL A,@Ri | (A)⊕((Ri))→A | √ | × | × | × | 1 | 1 |
64 | XRL A,#data | (A)⊕ data →A | √ | × | × | × | 2 | 1 |
62 | XRL direct,A | (direct)⊕(A)→direct | × | × | × | × | 2 | 1 |
63 | XRL direct,#data | (direct)⊕ data →direct | × | × | × | × | 3 | 2 |
E4 | CLR A | 0 →A | √ | × | × | × | 1 | 1 |
F4 | CPL A | /(A)→A | × | × | × | × | 1 | 1 |
23 | RL A | A循环左移一位 | × | × | × | × | 1 | 1 |
33 | RLC A | A带进位循环左移一位 | × | × | × | × | 1 | 1 |
03 | RR A | A循环右移一位 | × | × | × | × | 1 | 1 |
13 | RRC A | A带进位循环右移一位 | × | × | × | × | 1 | 1 |
C4 | SWAP A | A半字节交换 | × | × | × | × | 1 | 1 |
数据传送指令 (共28条)
机器码 | 助记符 | 功能 | 对标志影响 | 字节数 | 周期数 | |||
P | OV | AC | CY | |||||
E8~EF | MOV A,Rn | (Rn)→A | √ | × | × | × | 1 | 1 |
E5 | MOV A,driect | (driect)→A | √ | × | × | × | 2 | 1 |
E6,E7 | MOV A,@Ri | ((Ri))→A | √ | × | × | × | 1 | 1 |
74 | MOV A,#data | data →A | √ | × | × | × | 2 | 1 |
F8~FF | MOV Rn,A | (A)→(Rn) | × | × | × | × | 1 | 1 |
A8--AF | MOV Rn,direct | (driect)→Rn | × | × | × | × | 2 | 2 |
78~7F | MOV Rn,#data | data →Rn | × | × | × | × | 2 | 1 |
F5 | MOV driect,A | (A)→driect | × | × | × | × | 2 | 1 |
88~8F | MOV driect,Rn | (Rn)→driect | × | × | × | × | 2 | 1 |
85 | MOV driect1,driect2 | (driect2) →driect1 | × | × | × | × | 3 | 2 |
86,87 | MOV driect,@Ri | ((Ri))→driect | × | × | × | × | 2 | 2 |
75 | MOV driect,#data | data→driect | × | × | × | × | 3 | 2 |
F6,F7 | MOV @Ri,A | (A)→(Ri) | × | × | × | × | 1 | 2 |
A6,A7 | MOV @Ri,driect | driect →(Ri) | × | × | × | × | 2 | 2 |
76,77 | MOV @Ri,#data | data →(Ri) | × | × | × | × | 2 | 2 |
90 | MOV DPTR,#data16 | data16 →DPTR | × | × | × | × | 3 | 1 |
93 | MOVC A,@A+DPTR | ((A)+(DPTR))→A | × | × | × | × | 1 | 2 |
83 | MOVC A,@A+PC | ((A)+(PC))→A | × | × | × | × | 1 | 2 |
E2,E3 | MOVX A,@Ri | ((Ri)+P2) →A | √ | × | × | × | 1 | 2 |
E0 | MOVX A,@DPTR | ((DPTR)) →A | √ | × | × | × | 1 | 2 |
F2,F3 | MOVX @Ri,A | (A)→(Ri)+(P2) | √ | × | × | × | 1 | 2 |
F0 | MOV @DPTR,A | (A)→(DPTR) | × | × | × | × | 1 | 2 |
C0 | PUSH direct | (SP)+1→SP | × | × | × | × | 2 | 2 |
D0 | POP direct | ((direct))→direct (SP)-1→SP | × | × | × | × | 2 | 2 |
C8~8F | XCH A,Rn | (A)← →(Rn) | √ | × | × | × | 1 | 1 |
C5 | XCH A,direct | (A)← →(direct) | √ | × | × | × | 2 | 1 |
C6,C7 | XCH A,@Ri | (A)← →((Ri)) | √ | × | × | × | 1 | 1 |
D6,D7 | XCHD A,@Ri | (A)0--3← →((Ri))0--3 | √ | × | × | × | 1 | 1 |
位操作指令 (共12条)
机器码 | 助记符 | 功能 | 对标志影响 | 字节数 | 周期数 | |||
P | OV | AC | CY | |||||
C3 | CLR C | 0 → Cy | × | × | × | √ | 1 | 1 |
C2 | CLR bit | 0 → bit | × | × | × |
| 2 | 1 |
D3 | SETB C | 1 → Cy | × | × | × | √ | 1 | 1 |
D2 | SETB bit | 1 → bit | × | × | × |
| 2 | 1 |
B3 | CPL C | /(Cy) → Cy | × | × | × | √ | 1 | 1 |
B2 | CPL bit | /(bit) → bit | × | × | × |
| 2 | 1 |
82 | ANL C,bit | (Cy)∧ (bit) → Cy | × | × | × | √ | 2 | 2 |
B0 | ANL C,/bit | (Cy)∧ /(bit) → Cy | × | × | × | √ | 2 | 2 |
72 | ORL C,bit | (Cy)∨ (bit) → Cy | × | × | × | √ | 2 | 2 |
A0 | ORL C,/bit | (Cy)∨ /(bit) → Cy | × | × | × | √ | 2 | 2 |
A2 | MOV C,bit | (bit)→ Cy | × | × | × | √ | 2 | 1 |
92 | MOV bit,C | (Cy)→ bit | × | × | × | √ | 2 | 1 |
控制转移指令 (共22条)
机器码 | 助记符 | 功能
| 对标志影响 | 字节数 | 周期数 | |||
P | OV | AC | CY | |||||
*1 | ACALL addr11 | (PC)+2→PC (SP)+1→SP (PC)L→SP | × | × | × | × | 2 | 2 |
12 | LCALL addr16 | (PC)+2→PC (SP)+1→SP (PC)L→SP | × | × | × | × | 3 | 2 |
22 | RET | ((SP))→PCH (SP)-1→SP | × | × | × | × | 1 | 2 |
32 | RETI | ((SP))→PCH (SP)-1→SP | × | × | × | × | 1 | 2 |
*1 | AJMP addr11 | addr11 →PC10~0 | × | × | × | × | 2 | 2 |
02 | LJMP addr16 | addr16 →PC | × | × | × | × | 3 | 2 |
80 | SJMP rel | (PC)+(rel) →PC | × | × | × | × | 2 | 2 |
73 | JMP @A+DPTR | (A)+(DPTR)→PC | × | × | × | × | 1 | 2 |
60 | JZ rel | (PC)+2→PC 若(A)=0,(PC)+(rel)→PC | × | × | × | × | 2 | 2 |
70 | JNZ rel | (PC)+2→PC 若(A)≠0,(PC)+(rel)→PC | × | × | × | × | 2 | 2 |
40 | JC rel | (PC)+2→PC | × | × | × | × | 2 | 2 |
50 | JNC rel | (PC)+2→PC | × | × | × | × | 2 | 2 |
20 | JB bit,rel | (PC)+3→PC 若(bit)=1,(PC)+(rel)→PC | × | × | × | × | 3 | 2 |
30 | JNB bit,rel | (PC)+3→PC 若(bit)≠1,(PC)+(rel)→PC | × | × | × | × | 3 | 2 |
10 | JBC bit,rel | (PC)+3→PC 若(bit)=1, | × | × | × | √ | 3 | 2 |
B5 | CJNE A,direct,rel | (PC)+3→PC | × | × | × | √ | 3 | 2 |
B4 | CJNE A,#data,rel | (PC)+3→PC | × | × | × | √ | 3 | 2 |
B8~8F | CJNE Rn,#data,rel | (PC)+3→PC | × | × | × | √ | 3 | 2 |
B6,B7 | CJNE | (PC)+3→PC | × | × | × | √ | 3 | 2 |
D8--DF | DJNZ Rn,rel | (PC)+2→PC,(Rn)-1→Rn | × | × | × | × | 3 | 2 |
D5 | DJNZ direct,rel | (PC)+2→PC,(direct)-1→direct | × | × | × | × | 3 | 2 |
00 | NOP | 空操作 | × | × | × | × | 1 | 1 |
伪指令(共7条)
伪指令 | 功能 | 格式 |
ORG | 规定本条指令下面的程序和数据的起始地址 | ORG Addr16 |
EQU | 将一个常数或汇编符号赋给字符名 | 字符名 EQU 常数或汇编符号 |
BIT | 将BIT之后的位地址值赋给字符名 | 字符名 BIT 位地址 |
DB | 从指定的ROM地址单元开始存入DB后面的数据,这些数据可以是用逗号隔开的字节串或括在单引号中的ASCII字符串 | DB 8位数据表 |
DW | 从指定的ROM地址开始,在连续的单元中定义双字节数据 | DW 16位数据表 |
DS | 从指令地址开始保留DS之后表达式的值所规定的存储单元数,以备后用 | DS 表达式 |
END | 用来指示源程序到此全部结束 | END |