51单片机共有多少指令

如题所述

MCS-51单片机的指令集
1、数据传送类指令
助记符 功能说明 字节数 振荡周期
MOV A,Rn 寄存器内容送入累加器 1 12
MOV A,direct 直接地址单元中的数据送入累加器 2 12
MOV A,@Ri 间接RAM中的数据送入累加器 1 12
MOV A,#data8 8位立即数送入累加器 2 12
MOV Rn,A 累加器内容送入寄存器 1 12
MOV Rn,direct 直接地址单元中的数据送入寄存器 2 24
MOV Rn,#data8 8位立即数送入寄存器 2 12
MOV direct,A 累加器内容送入直接地址单元 2 12
MOV direct,Rn 寄存器内容送入直接地址单元 2 24
MOV direct,direct 直接地址单元中的数据送入直接地址单元 3 24
MOV direct,@Ri 间接RAM中的数据送入直接地址单元 2 24
MOV direct,#data8 8位立即数送入直接地址单元 3 24
MOV @Ri,A 累加器内容送入间接RAM单元 1 12
MOV @Ri,direct 直接地址单元中的数据送入间接RAM单元 2 24
MOV @Ri,#data8 8位立即数送入间接RAM单元 2 12
MOV DPTR,#data16 16位立即数地址送入地址寄存器 3 24

MOVC A,@A+DPTR 以DPTR为基地址变址寻址单元中的数据送入累加器 1 24
MOVC A,@A+PC 以PC为基地址变址寻址单元中的数据送入累加器 1 24

MOVX A,@Ri 外部RAM(8位地址)送入累加器 1 24
MOVX A,@DPTR 外部RAM(16位地址)送入累加器 1 24
MOVX @Ri,A 累加器送入外部RAM(8位地址) 1 24
MOVX @DPTR,A 累加器送入外部RAM(16位地址) 1 24

PUSH direct 直接地址单元中的数据压入堆栈 2 24
POP DIRECT 堆栈中的数据弹出到直接地址单元 2 24

XCH A,Rn 寄存器与累加器交换 1 12
XCH A,direct 直接地址单元与累加器交换 2 12
XCH A,@Ri 间接RAM与累加器交换 1 12
XCHD A,@Ri 间接RAM与累加器进行低半字节交换 1 12

2、算术操作类指令
助记符 功能说明 字节数 振荡周期
ADD A,Rn 寄存器内容加到累加器 1 12
ADD A,direct 直接地址单元加到累加器 2 12
ADD A,@Ri 间接RAM内容加到累加器 1 12
ADD A,#data8 8位立即数加到累加器 2 12

ADDC A,Rn 寄存器内容带进位加到累加器 1 12
ADDC A,dirct 直接地址单元带进位加到累加器 2 12
ADDC A,@Ri 间接RAM内容带进位加到累加器 1 12
ADDC A,#data8 8位立即数带进位加到累加器 2 12

SUBB A,Rn 累加器带借位减寄存器内容 1 12
SUBB A,dirct 累加器带借位减直接地址单元 2 12
SUBB A,@Ri 累加器带借位减间接RAM内容 1 12
SUBB A,#data8 累加器带借位减8位立即数 2 12

INC A 累加器加1 1 12
INC Rn 寄存器加1 1 12
INC direct 直接地址单元内容加1 2 12
INC @Ri 间接RAM内容加1 1 12
INC DPTR DPTR加1 1 24

DEC A 累加器减1 1 12
DEC Rn 寄存器减1 1 12
DEC direct 直接地址单元内容减1 2 12
DEC @Ri 间接RAM内容减1 1 12

MUL A,B A乘以B 1 48
DIV A,B A除以B 1 48
DA A 累加器进行十进制转换 1 12

3、逻辑操作类指令
助记符 功能说明 字节数 振荡周期
ANL A,Rn 累加器与寄存器相“与” 1 12
ANL A,direct 累加器与直接地址单元相“与” 2 12
ANL A,@Ri 累加器与间接RAM内容相“与” 1 12
ANL A,#data8 累加器与8位立即数相“与” 2 12
ANL direct,A 直接地址单元与累加器相“与” 2 12
ANL direct,#data8 直接地址单元与8位立即数相“与” 3 24

ORL A,Rn 累加器与寄存器相“或” 1 12
ORL A,direct 累加器与直接地址单元相“或” 2 12
ORL A,@Ri 累加器与间接RAM内容相“或” 1 12
ORL A,#data8 累加器与8位立即数相“或” 2 12
ORL direct,A 直接地址单元与累加器相“或” 2 12
ORL direct,#data8 直接地址单元与8位立即数相“或” 3 24

XRL A,Rn 累加器与寄存器相“异或” 1 12
XRL A,direct 累加器与直接地址单元相“异或” 2 12
XRL A,@Ri 累加器与间接RAM内容相“异或” 1 12
XRL A,#data8 累加器与8位立即数相“异或” 2 12
XRL direct,A 直接地址单元与累加器相“异或” 2 12
XRL direct,#data8 直接地址单元与8位立即数相“异或” 3 24

CLR A 累加器清0 1 12
CPL A 累加器求反 1 12
RL A 累加器循环左移 1 12
RLC A 累加器带进位循环左移 1 12
RR A 累加器循环右移 1 12
RRC A 累加器带进位循环右移 1 12
SWAP A 累加器半字节交换 1 12

4、控制转移类指令
助记符 功能说明 字节数 振荡周期
ACALL addr11 绝对短调用子程序 2 24
LACLL addr16 长调用子程序 3 24
RET 子程序返回 1 24
RETI 中断返回 1 24
AJMP addr11 绝对短转移 2 24
LJMP addr16 长转移 3 24
SJMP rel 相对转移 2 24
JMP @A+DPTR 相对于DPTR的间接转移 1 24
JZ rel 累加器为零转移 2 24
JNZ rel 累加器非零转移 2 24
CJNE A,direct,rel 累加器与直接地址单元比较,不等则转移 3 24
CJNE A,#data8,rel 累加器与8位立即数比较,不等则转移 3 24
CJNE Rn,#data8,rel 寄存器与8位立即数比较,不等则转移 3 24
(相等则执行本指令的下一条)

CJNE @Ri,#data8,rel 间接RAM单元,不等则转移 3 24
(但有时还想得知两数比较之后哪个大,哪个小,
本条指令也具有这样的功能,如果两数不相等,
则CPU还会反映出哪个数大,哪个数小,
这是用CY(进位标志位)来实现的。
如果左边的数(A,Rn,@Ri)大或者等于右边的数(direct,#date8),则CY=0;否则CY=1)

DJNZ Rn,rel 寄存器减1,非零转移 3 24
DJNZ direct,rel 直接地址单元减1,非零转移 3 24
NOP 空操作 1 12

控制转移指令共有17条,可分为“无条件转移指令” “有条件转移指令” “子程序调用指令” 及 “返回指令”。

5、布尔变量操作类指令
助记符 功能说明 字节数 振荡周期
CLR C 清进位位 1 12
CLR bit 清直接地址位 2 12
SETB C 置进位位 1 12
SETB bit 置直接地址位 2 12
CPL C 进位位求反 1 12
CPL bit 直接地址位求反 2 12
ANL C,bit 进位位和直接地址位相“与” 2 24
ANL C,/bit 进位位和直接地址位的反码相“与” 2 24
ORL C,bit 进位位和直接地址位相“或” 2 24
ORL C,/bit 进位位和直接地址位的反码相“或” 2 24
MOV C,bit 直接地址位送入进位位 2 12
MOV bit,C 进位位送入直接地址位 2 24
JC rel 进位位为1则转移(CY=O不转移,=1转移) 2 24
JNC rel 进位位为0则转移(和上面相反) 2 24
JB bit,rel 直接地址位为1则转移 3 24
JNB bit,rel 直接地址位为0则转移 3 24
JBC bit,rel 直接地址位为1则转移,该位清零 3 24

伪指令
助记符 功能说明
ORG 设置程序起始地址
END 标志源代码结束
EQU 定义常数
SET 定义整型数
DATA 给字节类型符号定值
BYTE 给字节类型符号定值
WROD 给字类型符号定值
BIT 给位地址取名
ALTNAME 用自定义名取代保留字
DB 给一块连续的存储区装载字节型数据
DW 给一块连续的存储区装载字型数据
DS 预留一个连续的存储区或装入指定字节。
INCLUDE 将一个源文件插入程序中
TITLE 列表文件中加入标题行
NOLIST 汇编时不产生列表文件
NOCODE 条件汇编时,条件为假的不产生清单
温馨提示:内容为网友见解,仅供参考
第1个回答  2016-01-09
我们学习的80C51单片机共有111条指令,这111条指令共有七种寻址方式。其中:

数据传送类指令 29条

算术运算类指令 24条

逻辑运算及移位类指令 24条

控制转移类指令 17条

位操作指令 17条追答

贡献文档:百度文库《吴鉴鹰单片机项目实战精讲》
单片机开发板参考:吴鉴鹰单片机开发板(有详细的视频教程,板子功能全面,适合学习使用

单片机系统指令mcs-51单微机处理指令
MCS-51指令系统包含111条不同的指令,这些指令根据其结构和执行时间可以分为几类。首先,按照指令占用的字节数来区分:单字节指令(49条)如:MOV A, R2 (机器码11101010)双字节指令(46条)如:MOV A, #0BH (机器码74H, 0BH)三字节指令(16条)如:MOV 0BH, #0BH (机器码75H, 0BH, 0...

求MCS-51单片机所有缩写的英文全称【高分】
MCS-51指令虽多,但按功能可分为五类,其中数据传送类28条,算术运算类24条,逻辑操作类25条,控制转移类17条,布尔位操作类17条。pc是programcounter的缩写,即程序计数器,pc是16位的计数器,它始终指向单片机将要执行的下一条指令。sp是stackpoint的缩写,即堆栈指针,指向栈顶。单片机缩写的英文全...

求一张单片机MCS-51系列的指令系统
MCS-51系列单片机指令系统共有111条指令,其中有49条单字节指令、45条双字节指令和17条三字节指令。MCS-51数据传送指令: 数据传送指令共有29条,数据传送指令一般的操作是把源操作数传送到目的操作数,指令执行完成后,源操作数不变,目的操作数等于源操作数。如果要求在进行数据传送时,目的操作数不丢失,则不能用直接...

mcs-51单片机指令系统可分为5大类,共有几条指令
可分为5大类,共有111条指令。

51单片机中执行一条乘法指令或者除法指令需要多少个机器周期?
51单片机的功能:8位CPU·4kbytes程序存储器(ROM) (52为8K)128bytes的数据存储器(RAM) (52有256bytes的RAM)32条I\/O口线·111条指令,大部分为单字节指令 21个专用寄存器 2个可编程定时\/计数器·5个中断源,2个优先级(52有6个)一个全双工串行通信口 外部数据存储器寻址空间为64kB 外部程序存储...

mcs-51系列单片机指令系统有哪五类?
mcs-51系列单片机指令系统有五类,分别为:1、数据传送指令 2、算术运算指令 3、逻辑运算指令 4、控制转移指令 5、布尔处理指令

单片机中寄存器间接寻址为啥不能用R3,或者说R0,R1,与其他工作寄存器有何...
51单片机的指令系列有111条指令,寄存器间接寻址命令中会出现@Ri,系统规定这里的i只能是0或1,有相应的机器码与其对应,也就是说用其它工作寄存器作间接寻址时系统是查不到机器码,当然是无法执行相应的功能要求了,这是系统规定的记牢就是哦。

51单片机指令有哪些啊?
MCS-51单片机的指令集 1、数据传送类指令 助记符功能说明字节数振荡周期 MOVA,Rn寄存器内容送入累加器112 MOVA,direct直接地址单元中的数据送入累加器212 MOVA,@Ri间接RAM中的数据送入累加器112 MOVA,#data88位立即数送入累加器212 MOVRn,A累加器内容送入寄存器112 MOVRn,direct直接地址单元中的数据...

51单片机有哪几部分构成?
·32条I\/O口线·111条指令,大部分为单字节指令 ·21个专用寄存器 ·2个可编程定时\/计数器·5个中断源,2个优先级(52有6个)·一个全双工串行通信口。51单片机是对所有兼容Intel 8031指令系统的单片机的统称。该系列单片机的始祖是Intel的8004单片机,后来随着Flash rom技术的发展,8004单片机取得了...

单片机中,什么叫指令长度?
指令长度就是一条指令的二进制数位的多少。例如51单片机有8位,16位,24位指令 8位:累加器、寄存器间的加、减、与、或等算术和逻辑运算指令,(3位操作码可区分8种运算+3位操作码可区分8个寄存器+其他定义)16位:累加器、寄存器与一个“立即数”之间的加、减、与、或等算术和逻辑运算指令,需要...

相似回答