51汇编指令大全Word下载.docx
《51汇编指令大全Word下载.docx》由会员分享,可在线阅读,更多相关《51汇编指令大全Word下载.docx(8页珍藏版)》请在冰豆网上搜索。
Rel:
表示8位带符号的相对偏移量.用语SJMP和所有的条件转移指令中.偏移量相对于下一条指令的第一个字节计算,在-128~+127范围内取值.
DPTR:
为数据指针,可用作16位的地址寄存器.
/:
加在位操作的前面,表示对该位进行非运算.
bit:
表示内部可寻址位或特殊功能寄存器中的直接寻址位.
(x):
寄存器或地址单元中的内容.
((x)):
用x间接寻址的单元中的内容.
<
-:
表示将箭头右边的内容传送至箭头的左边.
$:
当前指令的地址.
单片机指令系统
(一)内部数据传送指令
(1)以累加器A为目的的传送指令:
MOVA,
#data
;
(A)<
-data
MOV
A,
direct
;
-(direct)
Rn
-(Rn)
@Ri
-((Ri))
(2)以通用寄存器Rn为目的的传送指令:
Rn,
A
(Rn)<
-(A)
direct
(direct)
#data:
(3)以直接地址为目的的传送指令:
direct,
(direct)<
Rn
direct2
;
-(direct2)
@Ri
-((Rn))
#data
(4)以寄存器间接地址为目的的传送指令:
@Ri,
A
((Ri))<
direct
#data
(二)数据指针赋值指令(16位数据传送指令)
DPTR,
#data16;
(三)片外数据传送指令
MOVX
A,
@Ri
-((Ri))片外
@DPTR;
-((DPTR))片外
@Ri,
((Ri))片外<
@DPTR,A
((DPTR))片外<
(四)ROM数据访问指令(查表指令)
MOVC
@A+DPTR
-((A)+(DPTR))rom
@A+PC
(PC)<
-(PC)+1,(A)<
-((A)+(PC))rom
(五)堆栈操作指令
PUSH
(SP)<
-(SP)+1,(SP)<
堆栈指针先加1,将数据压入栈顶
POP
-(SP),(SP)<
-(SP)-1
将数据从栈顶弹出存入direct,SP再减1
(六)数据交换指令
(1)整字节(8位)交换指令:
XCH
Rn;
A和Rn中的数互换
A和direct单元中的数互换
A和Ri间址单元中的数互换
(2)半字节交换指令:
XCHD
A的低4位Ri间接单元的低4位互换,高4位不动
(3)累加器高低半字节交换指令:
SWAP
A的高4位(D7~D4)和低4位(D3~D0)互换
(七)加法指令
(1)不带Cy加法指令:
ADD
-(A)+(Rn)
-(A)+(direct)
-(A)+((Ri))
-(A)+data
(2)带进位加法指令:
ADDC
-(A)+Cy+(Rn)
-(A)+Cy+(direct)
-(A)+Cy+((Ri))
-(A)+Cy+data
(3)加1指令:
INC
-(A)+1
-(Rn)+1
-((Ri))+1
-(direct)+1
DPTR
(FPTR)<
-(DPTR)+1
(八)减法指令
(1)带进位减法指令:
SUBB
-(A)-Cy-(Rn)
A,
-(A)-Cy-(direct)
-(A)-Cy-((Ri))
-(A)-Cy-data
(2)减1指令:
DEC
-(A)-1
-(direct)-1
Rn
-(Rn)-1
-((Ri))-1
(九)乘除指令
(1)乘法指令
MUL
AB
(B)(A)<
-(A)*(B)
指令功能是把累加器A和特殊功能寄存器B中两个8位无符号整数相乘,并把积的高8位字节存入B寄存器,低8位字节存入累加器A.
(2)除法指令
DIV
A/B,商存入A,余数存入B
指令的功能是把累加器A中的8位无符号整数除以寄存器B中的8位无符号整数商的整数部分存入累加器A中,余数保留在B中.
(十)十进制调整指令
DA
A
(十一)逻辑运算指令
(1)
逻辑与运算指令:
ANL
-(A)∧(Rn)
-(A)∧(direct)
-(A)∧((Ri))
-(A)∧data
#data;
(direct<
-(direct)∧data
(2)
逻辑或运算指令:
ORL
-(A)∨(Rn)
-(A)∨(direct)
-(A)∨((Ri))
-(A)∨data
#data;
-(direct)∨data
(3)
逻辑异或运算指令:
XRL
-(A)⊙(Rn)
-(A)⊙(direct)
-(A)⊙((Ri))
-(A)⊙data
-(direct)⊙data
(4)
累加器清0和取反指令
CLR
-0(累加器清0指令)
CPL
-(A)(累加器取反指令)
(5)
累加器移位指令:
不带进位Cy循环左移:
RL
Dn+1<
-Dn,D0<
-D7
D7D6D5D4D3D2D1D0
不带进位Cy循环右移:
RR
Dn+1->
Dn,D0<
带进位Cy循环左移:
RLC
Cy<
-D7,Dn+1<
-Cy
带进位Cy循环右移:
RRC
Cy->
D7,Dn+1->
Dn,D0->
Cy
(十二)控制转移指令
[1]无条件转移指令:
(1)长转移指令
LJMP
addr16
-addr16
(2)绝对转移指令AJMP
addr11
-(PC)+2,(PC)10~0<
-addr11
(3)短转移指令
SJMP
rel
-(PC)+2+rel
(4)变址寻址转移指令
JMP
-(A)+(DPTR)
[2]条件转移指令:
(1)累加器判0转移指令:
JZ
如果(A)=0,跳转到目标语句,否则顺序执行
JNZ
rel
如果(A)≠0,跳转