51单片机汇编指令总结

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据传输指令

一.片内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;否则顺序

相关文档
最新文档