单片机指令英文全称
6/13/2013 汪哲 2012.3.18整理 单片机指令集
51单片机汇编指令集 (指令集带英文翻译)
一、数据传送类指令(7种助记符)
MOV(英文为Move):对内部数据寄存器RAM和特殊功能寄存器SFR的数据进行
传送;
MOVC(Move Code)读取程序存储器数据
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
格的数据传送; MOVX (Move External RAM) 对外部RAM的数据传送; XCH (Exchange) 字节交换;
XCHD (Exchange low-order Digit) 低半字节交换; PUSH (Push onto Stack) 入栈;
POP (Pop from Stack) 出栈;
二、算术运算类指令(8种助记符)
ADD(Addition) 加法;
ADDC(Add with Carry) 带进位加法;
SUBB(Subtract with Borrow) 带借位减法; DA(Decimal Adjust) 十进制调整;
INC(Increment) 加1;
DEC(Decrement) 减1;
MUL(Multiplication、Multiply) 乘法;
DIV(Division、Divide) 除法;
三、逻辑运算类指令(10种助记符)
ANL(AND Logic) 逻辑与;
ORL(OR Logic) 逻辑或;
XRL(Exclusive-OR Logic) 逻辑异或;
CLR(Clear) 清零;
CPL(Complement) 取反;
RL(Rotate left) 循环左移;
RLC(Rotate Left throught the Carry flag) 带进位循环左移; RR(Rotate Right) 循环右移;
RRC (Rotate Right throught the Carry flag) 带进位循环右移;
SWAP (Swap) 低4位与高4位交换;
四、控制转移类指令(17种助记符)
ACALL(Absolute subroutine Call)子程序绝对调用; LCALL(Long subroutine Call)子程序长调用; RET(Return from subroutine)子程序返回; RETI(Return from Interruption)中断返回; SJMP(Short Jump)短转移;
AJMP(Absolute Jump)绝对转移;
LJMP(Long Jump)长转移;
CJNE (Compare Jump if Not Equal)比较不相等则转移; DJNZ (Decrement Jump if Not Zero)减,后不为,则转移; JZ (Jump if Zero)结果为,则转移;
JNZ (Jump if Not Zero) 结果不为,则转移; JC (Jump if the Carry flag is set)有进位则转移;
6/13/2013 汪哲 2012.3.18整理 单片机指令集 JNC (Jump if Not Carry)无进位则转移;
JB (Jump if the Bit is set)位为,则转移;
JNB (Jump if the Bit is Not set) 位为,则转移; JBC(Jump if the Bit is set and Clear the bit) 位为,则转移,并清除该位; NOP (No Operation) 空操作;
五、位操作指令(1种助记符)
CLR 位清零;
SETB(Set Bit) 位 置, 。
8种常用伪指令
,(ORG 16位地址 ;
此指令用在原程序或数据块的开始,指明此语句后面目标程序或数据块存放的起始地址。
,([标号:] DB 字节数据项表;
将项表中的字节数据存放到从标号开始的连续字节单元中。例如:SEG: DB 88H,100,“7”,“C”
,([标号:]DW 双字节数据项表;
定义16位地址表,16地址按低位地址存低位字节,高位地址存高位字节。 例如:TAB: DW 1234H,7BH
,(名字 EQU 表达式 或名字=表达式;
用与给一个表达式赋值或给字符串起名字。之后名字可用做程序地址,数据地址或立即数地址使用。名字必须是一字母开头的字母数字串。 例如:COUNT=10 或 SPACE EQU 10H
,(名字 DATA 直接字节地址;
给8位内部RAM单元起个名字,名字必须是一字母开头的字母数字串。同一单元可起多个名字。
例如:ERROR DATA 80H
,(名字 XDATA 直接字节地址;
给8位外部RAM起个名字,名字规定同DATA伪指令。 例如:IO_PORT XDATA 0CF04H
,(名字 BIT 位指令;
给一可位寻址的位单元起个名字,规定同DATA伪指令。 例如:SWT BIT 30H
,([标号:] ,,,;
指出源程序到此结束,汇编对其后的程序语句不予理睬。源程序只在主程序最后使用一个,,,。
1.数据传送指令(30条)
MOV A,Rn 寄存器送A
MOV A,direct 直接字节送A
MOV A,@Ri 间接RAM 送A
MOV A,#data 立接数送A
MOV Rn,A A 送寄存器
6/13/2013 汪哲 2012.3.18整理 单片机指令集
MOV Rn,direct 直接数送寄存器 MOV Rn,#data 立即数送寄存器
MOV direct,A A 送直接字节
MOV direct,Rn 寄存器送直接字节 MOV direct,direct 直接字节送直接字节 MOV direct,@Ri 间接 Rn 送直接字节 MOV drect,#data 立即数送直接字节 MOV @Ri,A A 送间接 Rn
MOV @Ri,direct 直接字节送间接Rn MOV @Ri,#data 立即数送间接 Rn MOV DPTR,#data16 16 位常数送数据指针 MOV C,bit 直接位送进位位
MOV bit,C 进位位送直接位
MOVC A,@A+DPTR A+DPTR 寻址程序存贮字节送A
MOVC A,@A+PC A+PC 寻址程序存贮字节送A MOVX A,@Ri 外部数据送A(8 位地) MOVX A,@DPTR 外部数据送A(16 位地址) MOVX @Ri,A A 送外部数据(8 位地址) MOVX @DPTR,A A 送外部数据(16 位地址) 1
PUSH direct 直接字节进栈道,SP 加1 POP direct 直接字节出栈,SP 减1 XCH A,Rn 寄存器与 A 交换
XCH A,direct 直接字节与A 交换 XCH A,@Ri 间接Rn 与A 交换 XCHD A,@Ri 间接Rn 与A 低半字节交换 2.逻辑运算指令(35条)
ANL A,Rn 寄存器与到A
ANL A,direct 直接字节与到A
ANL A,@Ri 间接RAM与到A
ANL A,#data 立即数与到A
ANL direct,A A与到直接字节
ANL direct,#data 立即数与到直接字节 ANL C,bit 直接位与到进位位
ANL C,/bit 直接位的反码与到进位位 ORL A,Rn 寄存器或到A
ORL A,direct 直接字节或到A
ORL A,@Ri 间接RAM或到A
ORL A,#data 立即数或到A
ORL direct,A A或到直接字节
ORL direct,#data 立即数或到直接字节 ORL C,bit 直接位或到进位位
ORL C,/bit 直接位的反码或到进位位 XRL A,Rn 寄存器异或到A
XRL A,direct 直接字节异或到A
6/13/2013 汪哲 2012.3.18整理 单片机指令集
XRL A,@Ri 间接RAM异或到A XRL A,#data 立即数异或到A XRL direct,A A异或到直接字节 XRL direct,#data 立即数异或到直接字节 SETB C 进位位置
SETB bit 直接位置
CLR A A清0
CLR C 进位位清0
CLR bit 直接位清0
CPL A A求反码
CPL C 进位位取反
CPL bit 直接位取反
RL A A循环左移一位
RLC A A 带进位左移一位
RR A A右移一位
RRC A A 带进位右移一位
SWAP A A 半字节交换
3.算术运算指令(24条)
ADD A,Rn 寄存器加到A
ADD A,direct 直接字节加到A ADD A,@Ri 间接RAM 加到A ADD A,#data 立即数加到A
ADDC A,Rn 寄存器带进位加到 A ADDC A,direct 直接字节带进位加到A ADDC A,@Ri 间接RAM 带进位加到A ADDC A,#data 立即数带进位加到 A SUBB A,Rn 从A 中减去寄存器和进位 SUBB A,direct 从A 中减去直接字节和进位 SUBB A,@Ri 从A 中减去间接RAM 和进位 SUBB A,#data 从A 中减去立即数和进位 INC A A加1
INC Rn 寄存器加1
INC direct 直接字节加1
INC @Ri 间接RAM 加1
INC DPTR 数据指针加1
DEC A A减1
DEC Rn 寄存器减 1
DEC direct 直接字节减1
DEC @Ri 间接RAM 减1
MUL AB A乘B
DIV AB A被B除
DA A A十进制调整
4.转移指令(22条)
AJMP addr 11 绝对转移
6/13/2013 汪哲 2012.3.18整理 单片机指令集 LJMP addr 16 长转移
SJMP rel 短转移 2 2 80
JMP @A+DPTR 相对于DPTR 间接转移 JZ rel 若A,0 则转移
JNZ rel 若A?0 则转移
JC rel 若C,1 则转移
JNC rel 若C?1 则转移
JB bit,rel 若直接位,1 则转移
JNB bit,rel 若直接位,0 则转移
JBC bit,rel 若直接位,1 则转移且清除
CJNE A,direct,rel 直接数与 A 比较,不等转移 CJNE A,#data,rel 立即数与 A 比较,不等转移 CJNE @Ri,#data,rel 立即数与间接RAM比较,不等转移 CJNE Rn,#data,rel 立即数与寄存器比较不等转移 DJNZ Rn,rel 寄存器减 1 不为0 转移
DJNZ direct,rel 直接字节减1 不为 0 转移 ACALL addr 11 绝对子程序调用
LCALL addr 16 子程序调用
RET 子程序调用返回
RETI 中断程序调用返回
NOP 空操作
汪哲 2012.3.18整理