找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1680|回复: 0
打印 上一主题 下一主题
收起左侧

MCS51单片机汇编指令集

[复制链接]
跳转到指定楼层
楼主
ID:492319 发表于 2019-4-4 17:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
指令格式(助记符)

指令功能说明

字节

周期

MOV  A,direct

(direct)→(A) 直接单元地址中的数据→累加器A

1

1

MOV  A,#data

#data→(A)  8位立即数→累加器A

2

1

MOV  A,Rn

(Rn )→(A) Rn寄存器中的数据→累加器A

1

1

MOV  A,@Ri

((Ri))→(A) Ri中的数据指向的地址单元中的数据 →累加器A

1

1

MOV  Rn,direct

(direct)→(Rn) 直接寻址单元中的数据 —> 寄存器Rn

2

2

MOV  Rn,#data

#data→(Rn) 8位立即数 —> 寄存器Rn

2

1

MOV  Rn,A  

(A)→(Rn) 累加器A中的数据 —> 寄存器Rn

1

1

MOV direct,direct

(direct)→(direct) 直接地址单元中的数据→直接地址单元direct

3

2

MOV direct,#data

#data→(direct) 立即数→直接地址单元direct

3

2

MOV direct,A

(A)→(direct) 累加器A中的数据→直接地址单元direct

2

2

MOV direct,Rn

(Rn)→(direct) 寄存器Rn中的数据→直接地址单元direct

2

2

MOV direct,@Ri

((Ri))→(direct) 寄存器Ri中的数据指定的地址单元中数据→直接地址单元direct

2

2

MOV  @Ri,direct

(direct)→((Ri)) 直接地址单元中的数据→以Ri中的内容为地址的RAM单元

2

2

MOV  @Ri,#data

#data→((Ri)) 立即数→以Ri中的内容为地址的RAM单元

2

1

MOV  @Ri,A

(A)→((Ri)) 累加器A中的数据→以Ri中的内容为地址的RAM单元

1

1

MOVC A,@A+DPTR

((A))+(DPTR)→(A) 表格地址单元中的数据→累加器A

3

2

MOVC  A,@A+PC

((PC))+1→(A),((A))+(PC)→(A) 表格地址单元中的数据→累加器A

1

2

MOVX  @DPTR,A

(A)→((DPTR)) 累加器中的数据→数据指针指向片外RAM地址中

3

2

MOVX  A, @DPTR

(A)→((DPTR)) 累加器中的数据 → 数据指针指向片外RAM地址中

3

2

MOVX  A, @Ri

((Ri))→(A) 寄存器Ri指向片外RAM地址中的数据→累加器A中

1

2

MOVX  @Ri,A

(A)→((Ri)) 累加器中的数据→寄存器Ri指向片外RAM地址中

1

2

PUSH  direct

(SP)+1→(SP),(direct)→(SP) 堆栈指针首先加1,直接寻址单元中的数据送到堆栈指针SP所指的单元中

2

2

PUSH  A

将累加器A中的数据→堆栈顶端

2

2

POP  direct

(SP)→(direct)(SP)-1→(SP), 堆栈指针SP所指的单元数据送到直接寻址单元中,堆栈指针SP再进行减1操作

2

2

POP A

将堆栈顶端的数据→累加器A

2

2

XCH  A,Rn

(A)←→(Rn)累加器与工作寄存器Rn中的数据互换

1

1

XCH  A,@Ri

(A)←→((Ri))累加器与工作寄存器Ri所指的存储单元中的数据互换

1

1

XCH  A, direct

(A)←→(direct)累加器与直接地址单元中的内容互换

2

2

XCHD  A,@Ri

(A3-0)←→((Ri)3-0)累加器与工作寄存器Ri所指的存储单元中的数据低半字节互换

1

1

SWAP  A

(A3-0)←→(A7-4)累加器中的内容高低半字节互换

1

1

MOV DPTR,#data16

#dataH→(DPH),#dataL→(DPL)16位常数的高8位送到DPH,低8位送到DPL

3

2

ADD  A,#data

A)+#data→(A) 累加器A中的数据与立即数#data相加,结果存在A中



ADD  A,direct

A)+(direct)→(A) 累加器A中的数据与直接地址单元中的数据相加,结果存在A中



指令格式(助记符)

指令功能说明

字节

周期

ADD  A,Rn

(A)+(Rn)→(A) 累加器A中的数据与工作寄存器Rn中的数据相加,结果存在A中



ADD  A,@Ri

(A)+((Ri))→(A) 累加器A中的数据与工作寄存器Ri所指向地址单元中的数据相加,结果存在A中



ADDC  A,direct

(A)+(direct)+(C)→(A) 累加器A中的数据与直接地址单元的数据连同进位位相加,结果存在A中



ADDC  A,#data

(A)+#data +(C)→(A) 累加器A中的数据与立即数连同进位位相加,结果存在A中



ADDC  A,Rn

A)+Rn+(C)→(A) 累加器A中的数据与工作寄存器Rn中的数据、连同进位位相加,结果存在A中



ADDC  A,@Ri

(A)+((Ri))+(C)→(A) 累加器A中的数据与工作寄存器Ri指向地址单元中的数据、连同进位位相加,结果存在A中



SUBB  A,direct

(A)-(direct)-(C)→(A) 累加器A中的数据与直接地址单元中的数据、连同借位位相减,结果存在A中



SUBB  A,#data

(A)-(Rn)-(C)→(A) 累加器A中的数据与工作寄存器中的数据、连同借位位相减,结果存在A中



SUBB  A,Rn

(A)-(Rn)-(C)→(A) 累加器A中的数据与工作寄存器中的数据、连同借位位相减,结果存在A中



SUBB  A,@Ri

(A)-((Ri))-(C)→(A) 累加器A中的数据与工作寄存器Ri指向的地址单元中的数据、连同借位位相减,结果存在A中



MUL  AB

(A)×(B)→(A)和(B) 累加器A中的数据乘以寄存器B中的数据,结果高字节存入寄存器B,底字节存入累加器A



DIV  AB

(A)÷(B)→(A)和(B) 累加器A中的数据除以寄存器B中的数据,结果的商存入累加器A,余数存入寄存器B中



INC  A

+1¡ú(A) 累加器A中的数据加1,结果存在A中



INC  direct

(direct)+1→(direct) 直接地址单元中的数据加1,结果送回原地址单元中,如果直接地址是I/O,其功能是先读入I/O锁存器的内容,然后在CPU进行加1操作,再输出到I/O上,这就是“读—修改—写”操作



INC  @Ri

((Ri))+1→((Ri)) 寄存器的数据指向的地址单元中的数据加1,结果送回原地址单元中



NC  Rn  

Rn)+1→(Rn)寄存器Rn的数据加1,结果送回原地址单元



INC  DPTR

(DPTR)+1→(DPTR)数据指针的数据加1,结果送回数据指针中



DEC  A

(A)-1→(A)累加器A中的数据减1,结果送回累加器A



DEC  direct

(direct)-1→(direct)直接地址单元中的数据减1,结果送回直接地址单元中



DEC  @Ri

((Ri))-1→((Ri))寄存器Ri指向的地址单元中的数据减1,结果送回原地址单元中



DEC  Rn

(Rn)-1→(Rn)寄存器Rn中的数据减1,结果送回寄存器Rn中



DA  A

累加器A中的数据做BCD调整



RL  A

累加器A中的数据左移一位,bit7¡úbit0



RR  A

累加器A中的数据右移一位,bit7¡úbit7



RLC  A

累加器A中的数据连同进位标志位CY左移一位,bit7¡úCY,CY¡úbit0



RRC  A

累加器A中的数据连同进位CY位CY右移一位,bi0¡úCY,CY¡úbit7



SWAP  A  

累加器中的数据高低半字节互换



CPL  A

累加器中的数据按位取反,即0¡ú1,1¡ú0



CLR  A

0¡ú(A),累加器中的数据清0H



ANL  A,direct

累加器A中的数据和直接地址单元中的数据执行与操作。结果存在寄存器A中



ANL  direct,#data

直接地址单元中的数据和立即数执行与操作。结果存在直接地址单元中



指令格式(助记符)

指令功能说明

字节

周期

NL  A,#data

累加器A的数据和立即数执行与操作。结果存在累加器A中



NL  A,Rn

累加器A的数据和寄存器Rn中的数据执行与操作。结果存在累加器A中



ANL  direct,A

直接地址单元中的数据和累加器A的数据执行与操作。结果存在直接地址单元中



ANL  A,@Ri

累加器A的数据和工作寄存器Ri指向的地址单元中的数据执行与操作。结果存在累加器A中



ORL  A,direct

累加器A中的数据和直接地址单元中的数据执行逻辑或操作。结果存在寄存器A中



ORL  direct,#data

累加器A中的数据和直接地址单元中的数据执行逻辑或操作。结果存在寄存器A中



ORL  A,#data

累加器A的数据和立即数执行逻辑或操作。结果存在累加器



ORL  A,Rn

累加器A的数据和寄存器Rn中的数据执行逻辑或操作。结果存在累加器A中



ORL  direct,A

直接地址单元中的数据和累加器A的数据执行逻辑或操作。结果存在直接地址单元中



ORL  A,@Ri

累加器A的数据和工作寄存器Ri指向的地址单元中的数据执行逻辑或操作。结果存在累加器A中



XRL  A,direct

累加器A中的数据和直接地址单元中的数据执行逻辑异或操作。结果存在寄存器A中



XRL  direct,#data

直接地址单元中的数据和立即数执行逻辑异或操作。结果存在直接地址单元中



XRL  A,#data

累加器A的数据和立即数执行逻辑异或操作。结果存在累加器A中



XRL  A,Rn

累加器A的数据和寄存器Rn中的数据执行逻辑异或操作。结果存在累加器A中



XRL  data,A

直接地址单元中的数据和累加器A的数据执行逻辑异或操作。结果存在直接地址单元中



XRL  A,@Ri

累加器A的数据和工作寄存器Ri指向的地址单元中的数据执行逻辑异或操作。结果存在累加器A中



CLR C

清除进位标志CY为0

1

1

CLR bit

清除bit为0

2

1

SETB C

设定进位标志CY为1

1

1

SETB bit

设定bit为1

2

1

CPL C

将进位标志CY反相

1

1

CPL bit

将bit反相

2

1

ANL C,bit

将进位标志CY AND bit值¡ú进位标志位CY

2

2

ANL C,/bit

将进位标志CY AND bit反相值¡ú进位标志位CY

2

2

ANL A,#data

将累加器A的各位与立即数的相对位置做AND¡úA累加器

2

2

ORL C,bit

将进位标志CY OR bit值¡ú进位标志位CY

2

2

ORL C,/bit

将进位标志CY OR bit反相值¡ú进位标志位CY

2

2

ORL A,#data

将累加器A的各位与立即数的相对位置做OR¡úA累加器

2

2

MOV C,bit

将bit值¡ú进位标志位CY

2

1

MOV bit,C

将进位标志位CY¡úbit值

2

2

JC rel

当进位标志位CY=1就跳至rel,否则执行下一条指令

2

2

JNC rel

当进位标志位CY=0就跳至rel,否则执行下一条指令

2

2

JB bit rel

当进bit=1就跳至rel,否则执行下一条指令

3

3

JNB bit rel

当进bit=0就跳至rel,否则执行下一条指令

3

3

JBC bit rel

当进bit=1跳至rel,并且清除此bit为0,否则执行下一条指令

3

3

ACALL addr11

2K范围内子程序调用

2

2

LCALL addr16

64K范围内子程序调用

3

3

RET

子程序返回

1

2

RET1

中断服务程序结束返回

1

2

指令格式(助记符)

指令功能说明

字节

周期

AJMP addr11

2K范围内无条件跳转

2

2

LJMP addr16

64K范围内无条件跳转

2

2

SJMP rel

在此指令的前128或后128范围内无条件跳转

2

2

JMP @A+DPTR

跳至@A+DPTR所指定的地址

1

2

JZ rel

如A的内容为0,则短跳转,负责执行下一条指令

2

2

JNZ rel

如A的内容不为0,则短跳转,负责执行下一条指令

2

2

CJNE A,direct,rel

如A的内容与直接地址内的数据不同,则短跳转

3

2

CJNE A,#data,rel

如A的内容与立即数不同,则短跳转

3

2

CJNE Rn,#data,rel

如Rn寄存器中的数据与立即数不同,则短跳转

3

2

CJNE @Ri,#data,rel

如间接地址的数据与立即数不同,则短跳转

3

2

DJNZ Rn,rel

Rn寄存器中的数据减1,若不为0,则短跳转,否则执行下条指令

2

2

DJNZ direct,rel

直接地址中的数据减1,若不为0,则短跳转,负责执行下条指令

3

2

NOP

CPU仅仅作取指令,不动作

1

1

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表