51单片机汇编指令总结

2019-03-16 17:38

数据传输指令

一.片内RAM数据传输指令

1.以累加器A为目的操作数的指令: MOV A , Rn MOV A , direct MOV A , @Ri MOV A , #data

2.以寄存器Rn为目的操作数的指令: MOV Rn , A MOV Rn ,direct MOV Rn , data

3.以直接地址为目的操作数的指令: MOV direct , A MOV direct , Rn MOV direct1 ,derect2 MOV direct , @Ri MOV direct , #data

4.间接地址为目的操作数的指令: MOV @Ri ,A MOV @Ri ,direct MOV @Ri , #data 5.十六位数据传送指令: MOV DPTR , #data16

二.累加器A与片外RAM数据传送指令: MOVX A , @Ri MOVX A , @DPTR MOVX @Ri , A MOVX @DPTR , A 三.查表寻址: MOVC A , @A+DPTR (先PC←(PC)+1,后A←((A)+(DPTR)))+ MOVC A , @A+PC (先PC←(PC)+1,后A←((A)+(PC))) 四.交换指令:

1.字节交换指令:

XCH A ,Rn XCH A ,direct XCH A , @Ri

2.半字节交换指令: XCHD A , @Ri 3.累加器半字节交换指令: SWAP A 五.栈操作指令: 1.PUSH(入栈指令) PUSH direct

2.POP(出栈指令) POP direct

算术运算指令:

一. 加法减法指令:

1.加法指令:

ADD A , Rn ADD A ,direct ADD A , @Ri ADD A , #data 2.带进位加法指令:

ADDC A ,Rn A←(A)+(Rn)+CY ADDC A ,direct A←(A)+(direct)+CY ADDC A , @Ri A←(A)+((Ri))+CY ADDC A , #data A←(A)+(data)+CY 3.带借位减法指令:

SUBB A , Rn A← (A)-CY-(Rn) SUBB A , direct A←(A)-CY-(direct) SUBB A , @Ri A←(A)-CY-((Ri)) SUBB A , #data A←(A)-CY-#data 二. 乘法除法指令:

1. 乘法指令:

MUL AB BA←(A) ×(B)高字节放在B中,低字节放在A中 2. 除法指令:

DIV AB A←(A) ÷(B)的商,(B) ←(A) ÷(B)的余数 三. 加1减1指令:

1. 加1指令:

INC A A←(A)+1 INC Rn Rn←(Rn)+1

INC direct direct←(direct)+1 INC @Ri (Ri) ←((Ri))+1 INC DPTR DPTR←(DPTR)+1 2. 减1指令: DEC A DEC Rn DEC direct DEC @Ri 四. 十进制调制指令:

DA A 调整累加器A的内容为BCD码

逻辑操作指令:

一.逻辑与、或、异或指令: 1.逻辑与指令: ANL A ,Rn ANL A , direct

ANL A , @Ri ANL A , #data 2.逻辑或这令: ORL A , Rn ORL A , direct ORL A , @Ri ORL A , #data ORL direct , A ORL direct , #data 3.逻辑异或指令: XRL A , Rn XRL A , direct XRL A , @Ri XRL A , #data XRL direct ,A XRL direct ,#data 二.清零、取反指令: 1.累加器A清零指令: CRL A 2.累加器A取反指令: CPL A

三.循环位移指令: 1.累加器A循环左移指令: RL A 2.累加器A循环右移指令: RR A 3.累加器A连同进位位循环左移指令: RLC A 4. 累加器A连同进位位循环右移指令: RRC A 控制转移指令:

一. 无条件转移指令:

1.绝对转移指令:

AJMP addr11 (先PC+2,然后将addr11的低十位传给PC,PC的高六位不变)

2.长转移指令:

LJMP addr16 (用addr16的值替换PC的值) 3.相对转移(短转移)指令:

SJMP rel(带符号的偏移字节数) (PC+2,再加rel赋值给PC) 4.间接转移指令:

JMP @A+DPTR (A)+(DPTR) →(PC)

二.条件转移指令:

1.累加器判零转移指令:

JZ rel 先PC+2;后判断,A为0时转移,PC+rel赋值给PC;否则顺序

执行

JNZ rel 先PC+2,后判断,A不为0时转移,PC+rel赋值给PC;否则顺序执

2.比较转移指令: CJNE 目的操作数,源操作数,rel CJNE A,direct,rel 先PC+3传回PC,再比较目的操作数和原操作数 CJNE A,#data,rel 目>源时,程序转移,PC+rel传回PC且CY=0 CJNE Rn,#data,rel 目=源时,程序顺序执行 CJNE @Ri,#data,rel 目<源时,程序转移,PC+rel传回PC且CY=1 3.减一非0指令:

DJNZ Rn,rel 先PC\\+2,Rn-1,当Rn为0时程序顺序执行,否则PC+rel传回PC DJNZ direct,rel 先PC+3,direct-1,direct为0时程序顺序执行,否则PC+rel传回PC

二. 子程序调用、返回指令:

1. 绝对调用指令ACALL:

ACALL addr11 先PC+2,SP+1将PC的低八位存入SP;SP+1,将PC的高八

位存入SP。将addr的低十一位传给PC的底十一位,PC的高五位不变

2. 长调用指令LCALL:

LCALL addr16 先PC+|3,SP+1将PC的低八位存入SP,SP+1,将PC的高八

位存入SP。将addr的十六位全部传给PC

3. 返回指令:

RET PC的8到十五位←((SP)),弹出断点的高8位,然后SP减1赋给SP,PC

的0到七位←((PC)),弹出断点的低八位;然后PC减1赋给PC

RETI PC的8到十五位←((SP)),弹出断点的高8位,然后SP减1赋给SP,PC的0到七位←((PC)),弹出断点的低八位;然后PC减1赋给PC 注意:RET是从子程序返回指令,当程序执行到此指令时,表示结束子程序的执行,返回调用指令(ACALL或LCALL)的下一条指令处(断点)继续往下执行。因此它的主要操作是将栈顶的断点地址送给PC。RETI是中断返回指令,除了具有RET的功能外,还具有开放低优先级中断、回复中断逻辑等功能。编程时不能混用这两种返回指令,中断指令一定安排在中断服务程序的最后 三. 空操作指令:

NOP PC←(PC)+1 这是一条单字节指令,除了PC+1指向下一条指令外不执行其他的操作,不影响其他寄存器和标志位。用来编写软件延时程序。 位操作指令:

一. 位数据传送指令:

MOV C,bit MOV bit,C 二. 位逻辑运算指令: 1.位逻辑与指令: ANL C,bit ANL C,/bit

2.位逻辑或指令:

ORL C,bit ORL C,bit

三. 位清零、置一、取反指令:

1. 位清零指令:

CLR C CLR bit 2. 位置一指令:

SETB C STEB bi 3. 位取反指令:

CPL C CPL bit

这类指令的功能执行的结果不影响标志位,当直接寻址位地址为端口P0~P3中的某一位时,具有“读-改-写”的功能。

四. 位条件转移指令:

1. 位累加器C判断转移指令

JC rel 先pc+2后判断,(C)=1时,则PC+rel赋值给PC,反之顺序执行 JNC rel 先pc+2后判断,(C)=0时,则PC+rel赋值给PC,反之顺序执行 2. 判位变量转移指令:

JB bit,rel 先PC+3,判断,若(bit)=1,PC+rel赋值给PC,反之顺序

往下执行

JNB bit,rel 先PC+3,判断,若(bit)=0,PC+rel赋值给PC,反之顺

序往下执行

3. 判位变量转移指令:

JBC bit,rel 先PC+3,判断,若(bit)=0,PC+rel赋值给PC,且bit

←0,反之顺序往下执行


51单片机汇编指令总结.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2016下半年四川公务员考试行测真题及答案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: