超全51单片机汇编指令集文档格式.docx
《超全51单片机汇编指令集文档格式.docx》由会员分享,可在线阅读,更多相关《超全51单片机汇编指令集文档格式.docx(12页珍藏版)》请在冰点文库上搜索。
JNB(JumpiftheBitisNotset)位为0则转移;
JBC(JumpiftheBitissetandClearthebit)位为1则转移,并清除该位;
NOP(NoOperation) 空操作;
五、位操作指令(1种助记符)
CLR位清零;
SETB(SetBit) 位置1。
8种常用伪指令
1.ORG
16位地址
;
此指令用在原程序或数据块的开始,指明此语句后面目标程序或数据块存放的起始地址。
2.[标号:
]DB
字节数据项表;
将项表中的字节数据存放到从标号开始的连续字节单元中。
例如:
SEG:
DB88H,100,“7”,“C”
3.[标号:
]DW
双字节数据项表;
定义16位地址表,16地址按低位地址存低位字节,高位地址存高位字节。
TAB:
DW
1234H,7BH
4.名字EQU表达式
或名字=表达式;
用与给一个表达式赋值或给字符串起名字。
之后名字可用做程序地址,数据地址或立即数地址使用。
名字必须是一字母开头的字母数字串。
COUNT=10或SPACE
EQU
10H
5.名字DATA直接字节地址;
给8位内部RAM单元起个名字,名字必须是一字母开头的字母数字串。
同一单元可起多个名字。
ERROR
DATA
80H
6.名字XDATA直接字节地址;
给8位外部RAM起个名字,名字规定同DATA伪指令。
IO_PORT
XDATA
0CF04H
7.名字BIT位指令;
给一可位寻址的位单元起个名字,规定同DATA伪指令。
SWTBIT30H
8.[标号:
] END;
指出源程序到此结束,汇编对其后的程序语句不予理睬。
源程序只在主程序最后使用一个END。
指令集(111条)
助记符
说明
字节
周期
代码
1.数据传送指令(30条)
MOVA,Rn
寄存器送A
1
E8--EF
MOVA,data
直接字节送A
2
E5
MOVA,@Ri
间接RAM送A
E6--E7
MOVA,#data
立接数送A
74
MOVRn,A
A送寄存器
F8--FF
MOVRn,data
直接数送寄存器
A8--AF
MOVRn,#data
立即数送寄存器
78--7F
MOVdata,A
A送直接字节
F5
MOVdata,Rn
寄存器送直接字节
88—8F
MOVdata,data
直接字节送直接字节
3
85
MOVdata,@Ri
间接Rn送直接字节
86;
87
MOVdata,#data
立即数送直接字节
75
MOV@Ri,A
A送间接Rn
F6;
F7
MOV@Ri,data
直接字节送间接Rn
A6;
A7
MOV@Ri,#data
立即数送间接Rn
76;
77
MOVDPTR,#data16
16位常数送数据指针
90
MOVC,bit
直接位送进位位
A2
MOVbit,C
进位位送直接位
92
MOVCA,@A+DPTR
A+DPTR寻址程序存贮字节送A
93
MOVCA,@A+PC
A+PC寻址程序存贮字节送A
83
MOVXA,@Ri
外部数据送A(8位地址)
E2;
E3
MOVXA,@DPTR
外部数据送A(16位地址)
E0
MOVX@Ri,A
A送外部数据(8位地址)
F2;
F3
MOVX@DPTR,A
A送外部数据(16位地址)
F0
PUSHdata
直接字节进栈道,SP加1
C0
POPdata
直接字节出栈,SP减1
D0
XCHA,Rn
寄存器与A交换
C8—CF
XCHA,data
直接字节与A交换
C5
XCHA,@Ri
间接Rn与A交换
C6;
C7
XCHDA,@Ri
间接Rn与A低半字节交换
D6;
D7
2.逻辑运算指令(35条)
ANLA,Rn
寄存器与到A
58—5F
ANLA,data
直接字节与到A
55
ANLA,@Ri
间接RAM与到A
56;
57
ANLA,#data
立即数与到A
54
ANLdata,A
A与到直接字节
52
ANLdata,#data
立即数与到直接字节
53
ANLC,bit
直接位与到进位位
82
ANLC,/bit
直接位的反码与到进位位
B0
ORLA,Rn
寄存器或到A
48—4F
ORLA,data
直接字节或到A
45
ORLA,@Ri
间接RAM或到A
46;
47
ORLA,#data
立即数或到A
44
ORLdata,A
A或到直接字节
42
ORLdata,#data
立即数或到直接字节
43
ORLC,bit
直接位或到进位位
72
ORLC,/bit
直接位的反码或到进位位
A0
XRLA,Rn
寄存器异或到A
68—6F
XRLA,data
直接字节异或到A
65
XRLA,@Ri
间接RAM异或到A
66;
67
XRLA,#data
立即数异或到A
64
XRLdata,A
A异或到直接字节
62
XRLdata,#data
立即数异或到直接字节
63
SETBC
进位位置1
D3
SETBbit
直接位置1
D2
CLRA
A清0
E4
CLRC
进位位清0
C3
CLRbit
直接位清0
C2
CPLA
A求反码
F4
CPLC
进位位取反
B3
CPLbit
直接位取反
B2
RLA
A循环左移一位
23
RLCA
A带进位左移一位
33
RRA
A右移一位
03
RRCA
A带进位右移一位
13
SWAPA
A半字节交换
C4
3.算术运算指令(24条)
ADDA,Rn
寄存器加到A
28—2F
ADDA,data
直接字节加到A
25
ADDA,@Ri
间接RAM加到A
26;
27
ADDA,#data
立即数加到A
24
ADDCA,Rn
寄存器带进位加到A
38—3F
ADDCA,data
直接字节带进位加到A
35
ADDCA,@Ri
间接RAM带进位加到A
36;
37
ADDCA,#data
立即数带进位加到A
34
SUBBA,Rn
从A中减去寄存器和进位
98—9F
SUBBA,data
从A中减去直接字节和进位
95
SUBBA,@Ri
从A中减去间接RAM和进位
96;
97
SUBBA,#data
从A中减去立即数和进位
94
INCA
A加1
04
INCRn
寄存器加1
08—0F
INCdata
直接字节加1
05
INC@Ri
间接RAM加1
06;
07
INCDPTR
数据指针加1
A3
DECA
A减1
14
DECRn
寄存器减1
18—1F
DECdata
直接字节减1
15
DEC@Ri
间接RAM减1
16;
17
MULAB
A乘B
4
A4
DIVAB
A被B除
84
DAA
A十进制调整
D4
4.转移指令(22条)
AJMPaddr11
绝对转移
*1
LJMPaddr16
长转移
02
SJMPrel
短转移
80
JMP@A+DPTR
相对于DPTR间接转移
73
JZrel
若A=0则转移
60
JNZrel
若A≠0则转移
70
JCrel
若C=1则转移
40
JNCrel
若C≠1则转移
50
JBbit,rel
若直接位=1则转移
20
JNBbit,rel
若直接位=0则转移
30
JBCbit,rel
若直接位=1则转移且清除
10
CJNEA,data,rel
直接数与A比较,不等转移
B5
CJNEA,#data,rel
立即数与A比较,不等转移
B4
CJNE@Ri,#data,rel
立即数与间接RAM比较,不等转移
B6;
B7
CJNERn,#data,rel
立即数与寄存器比较不等转移
B8—BF
DJNZRn,rel
寄存器减1不为0转移
D8—DF
DJNZdata,rel
直接字节减1不为0转移
D5
ACALLaddr11
绝对子程序调用
LCALLaddr16
子程序调用
12
RET
子程序调用返回
22
RETI
中断程序调用返回
32
NOP
空操作
00