导航:首页 > 操作系统 > 51单片机汇编指令集

51单片机汇编指令集

发布时间:2022-09-22 14:53:42

㈠ 51单片机指令有哪些啊

MCS-51共有111条指令,可分为5类:

[1].数据传送类指令(共29条)
[2].算数运算类指令(共24条)
[3].逻辑运算及移位类指令(共24条)
[4].控制转移类指令(共17条)
[5].布尔变量操作类指令(共17条)

㈡ 51单片机用的是什么指令集RISC还是CISC具体点是不是X86的

用的是RISC,精简指令集。CISC是复杂型指令集,这个现在用的少。是x86的。望采纳,谢谢。

㈢ 51单片机复杂指令集

51系列的单片机使用自己的8051指令集,是属于复杂指令集的。指令集与cpu 结构是一一对应的。除了自身所支持的51指令集以外其他指令集命令是不能识别的。当然不同系列的51单片机指令集也会有所扩充,但都是基于前代的指令集。一般而言新一代的51单片机自然包括了前代不能识别的指令。

㈣ 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 条件汇编时,条件为假的不产生清单

㈤ 51单片机的指令是汇编语言吗

我来回答

所有的处理器内部处理的都是二进制信号,也只能识别二进制信号,所以不管用什么样的语言写的程序,终将经转换成二进制的形式下载到芯片中去才能运行。但是用二进制指令不便于编写程序,也难于分析程序。而且学习起来不方便,所以就更加难于推广。
所以人们就想到了一个方法,用一些特定的符号(见名知意)来代替二进制指令。这就是我们所说的汇编语言。比如上面所说的MOV A,#3EH。其实,每条汇编指令,都对应唯一的一个二进制编码。
但不同体系的CPU。都有不同的汇编语言。虽是解决了不便于编写程序,难于分析程序的问题,但还是制约了推广,所以就出现以高级语言。(如C,C++,JAVA),但用高级语言编写出的程序,还是会经过编译器转换成来汇编程序,再转换成二进制的指令,下载到芯片中去。
这样就方便学习和推广。比如说,如果你懂C语言的话,就可以写很多体系CPU的应用程序。但如何转换为二进制指令的话,就由编译器来完成了。
所以强列建议你去学习C语言,这是一种经典的语言。对于应用开发很有用。

㈥ 51单片机汇编语言:位操作指令有哪些

数据位传送指令
MOV C, bit ;bit 可直接寻址位 C←(bit)
MOV bit,C ;C 进位位 (bit) ← C

位变量修改指令
CLR C ; 将C=0
CLR bit
CPL C ; 将C求反再存入C
CPL bit ; 将bit求反再存入bit
SETB C ; 将C=1
SETB bit ; (bit) ← 1

位变量逻辑指令
ANL C, bit ANL C, bit ORL C, bit ORL C, bit

㈦ 单片机指令中CLR A与MOV A,#00H的区别是什么

它们,对标志位的影响,是相同的。

区别,仅仅在代码长度。

CLR A 的机器码是一个字节。

MOV A, #0 的机器码是两个字节。

㈧ 51单片机和STM32有什么区别编程语言也可以用汇编语言吗

1.数据总线宽度不一样,数据总线宽度越宽,处理速度越快。2.汇编指令集不同,51是mcs51指令集,stm32是arm指令集。指令集内容相似,但是形式上还是有较大差距。3.51更便宜,性价比更高,懂得人也更多。4.仿真环境不一样,仿真器也不一样。5.51没有知识产权问题,专利已经过期了。6.发展节奏不一样,51现在是跟跑,STM32是领跑。相似点:都可以用汇编和C语言。建议从单片基本功能开始学起,首先从点亮一颗LED开始,然后是流水灯、中断等单片各种外设。先把基本功练好,后面才能爬得更高,张飞实战电子的单

㈨ 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 条件汇编时,条件为假的不产生清单

阅读全文

与51单片机汇编指令集相关的资料

热点内容
appstore中的钱怎么退 浏览:495
单片机程序下载后如何运行 浏览:475
刚买的阿里云服务器怎样搭建网站 浏览:637
公园设计pdf 浏览:684
缓解压力最好的办法美国 浏览:387
前后端系统数据加密解密 浏览:194
中国移动营业app怎么看套餐 浏览:205
javastatic数组 浏览:950
需要会员管理源码 浏览:415
手机app如何解除加密 浏览:167
用云服务器还得买个瘦主机 浏览:728
如何查看办公电脑服务器地址 浏览:368
海星云的服务器是什么系统 浏览:411
抖音小笼包解压神器 浏览:558
手机下载的源码在哪里储存 浏览:846
pdf看三维 浏览:406
九宫算法干什么用的 浏览:907
phpjava性能比较 浏览:886
2016会计中级pdf 浏览:181
农村信用社app怎么删除明细 浏览:818