助记符 代码 机器码 说明
MOV A,Rn E8~EF 寄存器 A
MOV A,direct E5 dircet 直接字节送 A
MOV A,@Ri E6~E7 间接 RAM 送 A
MOV A,#data 74 data 立即数送 A
MOV Rn,A F8~FF A 送寄存器
MOV Rn,dircet A8~AF dircet 直接字节送寄存器
MOV Rn,#data 78~7F data 立即数送寄存器
MOV dircet,A F5 dircet A 送直接字节
MOV dircet,Rn 88~8F dircet 寄存器送直接字节
MOV dircet1,dircet2 85 dircet1 dircet2 直接字节
送直接字节
MOV dircet,@Ro 86~87 间接 RAM 送直接字节
MOV dircet,#data 75 dircet data 立即数送直接字
节
MOV @Ri,A F6~F7 A 送间接 RAM
MOV @Ri,#data 76~77 data 直接字节送间接 RAM
MOV @Ri,#data 76~77 data 立即数送间接 RAM
MOV DPTR,#data16 90 data 15~8 16 位常数送数据指
针
data7~0
MOVC A,@A+DPTR 93 由((A)+(DPTR))寻址的程序存贮
器字节选 A
MOVC A,@A+PC 83 由((A)+(PC));寻址的程序存贮器
字节送 A
MOVX A,@Ri E2~E3 送外部数据(8 位地址)送 A
MOVX A,@DPTR E0 送外部数据(16 位地址)送 A
MOVX @Ri,A F2~F3 A 送外部数据(8 位地址)
MOVX @DPTR,A F0 A 送外部数据(16 位地址)
PUSH dircet C0 dircet 直接字节进栈,SP 加 1
POP dircet D0 dircet 直接字节退栈,SP 减 1
XCH A,Rn C8~CF 交换 A 和寄存器
XCH A,dircet C5 dircet 交换 A 和直接字节
XCH A,@Ri C6~C7 交换 A 和间接 RAM
XCH A,@Ri D6~D7 交换 A 和间接 RAM 的低位
SWAP A C4
算术操作 (A 的二个半字节交换)
ADD A,Rn 28~2F 寄存器加到 A
ADD A,dircet 25 dircet 直接字节加到 A
ADD A,@Ri 26~27 间接 RAM 加到 A
ADD A,#data 24data 立即数加到 A
ADD A,Rn 38~3F 寄存器和进位位加到 A
ADD A,dircet 35dircet 直接字节和进位位加到 A
ADD A,@Ri 36~37 间接字节和进位位加到 A
ADD A,data 34 data 立即数和进位位加到 A
ADD A,Rn 98~9F A 减去寄存器和进位位
ADD A,dircet 95 dircet A 减去直接字节和进位位
ADD A,@Ri 36~37 间接 RAM 和进位位加到 A
ADD A,data 34 data 立即数和进位位加到 A
SUBB A,Rn 98~9F A 减去寄存器和进位位
SUBB A,dircet 95 dircet A 减去直接字节和进位位
SUBB A,@Ri 96~97 A 减去间接 RAM 和进位位
SUBB A,#data 94 data A 减去立即数和进位位
INC A 04 A 加 1
INC Rn 08~0F 寄存器加 1
INC dircet 05 dircet 直接字节加 1
INC @Ri 06~07 间接 RAM 加 1
DEC A 14 A 减 1
DEC Rn 18~1F 寄存器减 1
DEC dircet 15 dircet 直接字节减 1
DEC @Ri 16~17 间接 RAM 减 1
INC DPTR A3 数据指针加 1
MUL AB A4 A 乘以 B
DIV AB 84 A 除以 B
DA A D4 A 的十进制加法调整
逻辑操作
ANL A,Rn 58~5F 寄存器“与”到 A
ANL A,dircet 55 dircet 直接字节“与”到 A
ANL A,@Ri 56~57 间接 RAm“与”到 A
ANL A,#data 54 data 立即数“与”到 A
ANL dircet A 52 dircet A“与”到直接字节
ANL dircet,#data 53 dircet data 立即数“与”到直
接字节
ORL A,Rn 48~4F 寄存器“或”到 A
ORL A,dircet 45 dircet 直接字节“或”到 A
ORL A,@Ri 46~47 间接 RAM“或”到 A
ORL A,#data 44 data 立即数“或”到 A
ORL dircet,A 42 dircet A“或”到直接字节
ORL dircet,#data 43 dircet data 立即数“或”到直
接字节
XRL A,Rn 68~6F 寄存器“异或”到 A
XRL A,dircet 65 dircet 直接字节“异或”到 A
XRL A,@Ri 66~67 间接 RAM“异或”到 A
XRL A,#data 64 data 立即数“异或”到 A
XRL dircet A 62 dircet A“异或”到直接字节
XRL dircet,#data 63 dircet data 立即数“异或”到
直接字节
CLR A E4 清零
CPL A F4 A 取反
RL A 23 A 左环移
RLC A 33 A 通过进位左环移
RR A 03 A 右环移
RRC A 13 A 通过进位右环移
控制程序转移
ACALL addr 11 *1 addr(a7~a0) 绝对子程序调用
LCALL addr 16 12 addr(15~8) 长子程序调用
addr(7~0)
RET 22 子程序调用返回
RETI addr 11 32 中断调用返回
AJMP addr 11 △1 addr(a7~a6) 绝对转移
LJMP addr 16 02addr(15~8) 长转移
addr(7~0)
SJMP rel 80 rel 短转移,相对转移
JMP @A+DPTR 73 相对于 DPTR 间接转移
JZ rel 60 rel A 为零转移
JNZ rel 70 rel A 为零转移
CJNE A,dircet,rel B5 dircet rel 直接字节与 A 比
较,不等则转移
CJNE A,#data,rel B4 data rel 立即数与 A 比较,不
等则转移
CJNE A,Rn,#data,rel B8~BF data rel 立即数与寄存
器比较,不等则转移
CJNE @Ri,#data,rel B6~B7 data rel 立即数与间接
RAM 比较,不等则转移
DJNZ Rn,rel D8~DF rel 寄存器减 1,不为零则转移
DJNZ dircet,rel B5 dircet rel 直接字节减 1,不
为零则转移
NOP 00 空操作
*=a10a9a8l
△=a10a9a80
布尔变量操作
CLR C C3 清零进位
CLR bit C2 清零直接位
SETB C D3 置位进位
SETB bit D2 置位直接位
CPL C B3 进位取反
CPL bit B2 直接位取反
ANL C,bit 82 dit 直接数“与”到进位
ANL C,/bit B0 直接位的反“与”到进位
ORL C,bit 72 bit 直接位“或”到进位
ORL C,/bit A0 bit 直接位的反“或”到进位
MOV C,bit A2 bit 直接位送进位
MOV bit,C 92 bit 进位送直接位
JC rel 40 rel 进位位为 1 转移
JNC rel 50 rel 进位位为 0 转移
JB bit,rel 20 bit rel 直接位为 1 相对转移
JNB bit,rel 30 bit rel 直接位为 0 相对转移
JBC bit,rel 10 bit rel 直接位为 1 相对转移,然后
清零该位
[1]. 循环移位指令(4 条)
RL A ;累加器 A 中的内容左移一位
RR A ;累加器 A 中的内容右移一位
RLC A ;累加器 A 中的内容连同进位位 CY 左移一位
RRC A ;累加器 A 中的内容连同进位位 CY 右移一位
[2]. 累加器半字节交换指令(1 条)
SWAP A ; 累加器中的内容高低半字节互换
[3]. 求反指令(1 条)
CPL A ; 累加器中的内容按位取反
[4]. 清零指令(1 条)
CLR A ; 0→(A),累加器中的内容清 0
[5]. 逻辑与操作指令(6 条)
ANL A,data ;累加器 A 中的内容和直接地址单元中的
内容执行与逻辑操作。结果存在寄存器 A 中。
ANL data,#data ;直接地址单元中的内容和立即数执
行与逻辑操作。结果存在直接地址单元中。
ANL A,#data ;累加器 A 的内容和立即数执行与逻辑操
作。结果存在累加器 A 中。
ANL A,Rn ;累加器 A 的内容和寄存器 Rn 中的内容执行
与逻辑操作。结果存在累加器 A 中。
ANL data,A ;直接地址单元中的内容和累加器 A 的内
容执行与逻辑操作。结果存在直接地址单元中。
ANL A,@Ri ;累加器 A 的内容和工作寄存器 Ri 指向的