单片机指令功能一览表
助记符 代码 说明
MOV A,Rn E8~EF 寄存器A
MOV A,direct E5 dircet 直接字节送A
MOV A,@Ri ER~E7 间接RAM送A
MOV A,#data 74 data 立即数送A
MOV Rn,A F8~FF A送寄存器
MOV Rn,dircet A8~AF dircet 直接字节送寄存器
MOV Rn,#data 78~7F data 立即数送寄存器
MOV dircet,A F5 dircet A送直接字节
MOV dircet,Rn 88~8F dircet 寄存器送直接字节
MOV dircet1,dircet2 85 dircet1 dircet2 直接字节送直接字节
MOV dircet,@Ro 86~87 间接RAM送直接字节
MOV dircet,#data 75 dircet data 立即数送直接字节
MOV @Ri,A F6~F7 A送间接RAM
MOV @Ri,#data 76~77 data 直接字节送间接RAM
MOV @Ri,#data 76~77 data 立即数送间接RAM
MOV DPTR,#data16 90 data 15~8 16位常数送数据指针
data7~0
MOVC A,@A+DPTR 93 由((A)+(DPTR))寻址的程序存贮
器字节选A
MOVC A,@A+PC 83 由((A)+(PC));寻址的程序存贮器字节送A
MOVX A,@Ri E2~E3 送外部数据(8位地址)送A
MOVX A,@DPTR E0 送外部数据(16位地址)送A
MOVX @Ri,A F2~F3 A送外部数据(8位地址)
MOVX @DPTR,A F0 A送外部数据(16位地址)
PUSH dircet C0 dircet 直接字节进栈,SP加1
POP dircet D0 dircet 直接字节退栈,SP减1
XCH A,Rn C8~CF 交换A和寄存器
XCH A,dircet C5 dircet 交换A和直接字节
XCH A,@Ri C6~C7 交换A和间接RAM
XCH A,@Ri D6~D7 交换A和间接RAM的低位
SWAP A C4
算术操作 (A的二个半字节交换)
ADD A,Rn 28~2F 寄存器加到A
ADD A,dircet 25 dircet 直接字节加到A
ADD A,@Ri 26~27 间接RAM加到A
ADD A,#data 24data 立即数加到A
ADD A,Rn 38~3F 寄存器和进位位加到A
ADD A,dircet 35dircet 直接字节和进位位加到A
ADD A,@Ri 36~37 间接字节和进位位加到A
ADD A,data 34 data 立即数和进位位加到A
ADD A,Rn 98~9F A减去寄存器和进位位
ADD A,dircet 95 dircet A减去直接字节和进位位
ADD A,@Ri 36~37 间接RAM和进位位加到A
ADD A,data 34 data 立即数和进位位加到A
SUBB A,Rn 98~9F A减去寄存器和进位位
SUBB A,dircet 95 dircet A减去直接字节和进位位
SUBB A,@Ri 96~97 A减去间接RAM和进位位
SUBB A,#data 94 data A减去立即数和进位位
INC A 04 A加1
INC Rn 08~0F 寄存器加1
INC dircet 05 dircet 直接字节加1
INC @Ri 06~07 间接RAM加1
DEC A 14 A减1
DEC Rn 18~1F 寄存器减1
DEC dircet 15 dircet 直接字节减1
DEC @Ri 16~17 间接RAM减1
INC DPTR A3 数据指针加1
MUL AB A4 A乘以B
DIV AB 84 A除以B
DA A D4 A的十进制加法调整
逻辑操作
ANL A,Rn 58~5F 寄存器“与”到A
ANL A,dircet 55 dircet 直接字节“与”到A
ANL A,@Ri 56~57 间接RAm“与”到A
ANL A,#data 54 data 立即数“与”到A
ANL dircet A 52 dircet A“与”到直接字节
ANL dircet,#data 53 dircet data 立即数“与”到直接字节
ORL A,Rn 48~4F 寄存器“或”到A
ORL A,dircet 45 dircet 直接字节“或”到A
ORL A,@Ri 46~47 间接RAM“或”到A
ORL A,#data 44 data 立即数“或”到A
ORL dircet,A 42 dircet A“或”到直接字节
ORL dircet,#data 43 dircet data 立即数“或”到直接字节
XRL A,Rn 68~6F 寄存器“异或”到A
XRL A,dircet 65 dircet 直接字节“异或”到A
XRL A,@Ri 66~67 间接RAM“异或”到A
XRL A,#data 64 data 立即数“异或”到A
XRL dircet A 62 dircet A“异或”到直接字节
XRL dircet,#data 63 dircet data 立即数“异或”到直接字节
CLR A E4 清零
CPL A F4 A取反
RL A 23 A左环移
RLC A 33 A通过进位左环移
RR A 03 A右环移
RRC A 13 A通过进位右环移
控制程序转移
ACALL addr 11 *1 addr(a7~a0) 绝对子程序调用
LCALL addr 16 12 addr(15~8) 长子程序调用
addr(7~0)
RET 22 子程序调用返回
RETI addr 11 32 中断调用返回
AJMP addr 11 △1 addr(a7~a6) 绝对转移
LJMP addr 16 02addr(15~8) 长转移
addr(7~0)
SJMP rel 80 rel 短转移,相对转移
JMP @A+DPTR 73 相对于DPTR间接转移
JZ rel 60 rel A为零转移
JNZ rel 70 rel A为零转移
CJNE A,dircet,rel B5 dircet rel 直接字节与A比较,不等则转移
CJNE A,#data,rel B4 data rel 立即数与A比较,不等则转移
CJNE A,Rn,#data,rel B8~BF data rel 立即数与寄存器比较,不等则转移
CJNE @Ri,#data,rel B6~B7 data rel 立即数与间接RAM比较,不等则转移
DJNZ Rn,rel D8~DF rel 寄存器减1,不为零则转移
DJNZ dircet,rel B5 dircet rel 直接字节减1,不为零则转移
NOP 00 空操作
*=a10a9a8l
△=a10a9a80
布尔变量操作
CLR C C3 清零进位
CLR bit C2 清零直接位
SETB C D3 置位进位
SETB bit D2 置位直接位
CPL C B3 进位取反
CPL bit B2 直接位取反
ANL C,bit 82 dit 直接数“与”到进位
ANL C,/bit B0 直接位的反“与”到进位
ORL C,bit 72 bit 直接位“或”到进位
ORL C,/bit A0 bit 直接位的反“或”到进位
MOV C,bit A2 bit 直接位送进位
MOV bit,C 92 bit 进位送直接位
JC rel 40 rel 进位位为1转移
JNC rel 50 rel 进位位为0转移
JB bit,rel 20 bit rel 直接位为1相对转移
JNB bit,rel 30 bit rel 直接位为0相对转移
JBC bit,rel 10 bit rel 直接位为1相对转移,然后清零该位
[1]. 循环移位指令(4条)
RL A ;累加器A中的内容左移一位
RR A ;累加器A中的内容右移一位
RLC A ;累加器A中的内容连同进位位CY左移一位
RRC A ;累加器A中的内容连同进位位CY右移一位
[2]. 累加器半字节交换指令(1条)
SWAP A ; 累加器中的内容高低半字节互换
[3]. 求反指令(1条)
CPL A ; 累加器中的内容按位取反
[4]. 清零指令(1条)
CLR A ; 0→(A),累加器中的内容清0
[5]. 逻辑与操作指令(6条)
ANL A,data ;累加器A中的内容和直接地址单元中的内容执行与逻辑操作。结果存在寄存器A中。
ANL data,#data ;直接地址单元中的内容和立即数执行与逻辑操作。结果存在直接地址单元中。
ANL A,#data ;累加器A的内容和立即数执行与逻辑操作。结果存在累加器A中。
ANL A,Rn ;累加器A的内容和寄存器Rn中的内容执行与逻辑操作。结果存在累加器A中。
ANL data,A ;直接地址单元中的内容和累加器A的内容执行与逻辑操作。结果存在直接地址单元中。
ANL A,@Ri ;累加器A的内容和工作寄存器Ri指向的地址单元中的内容执行与逻辑操作。结果存在累加器A中。
[6]. 逻辑或操作指令(6条)
这组指令的作用是将两个单元中的内容执行逻辑或操作。如果直接地址是I/O地址,则为“读—修改—写”操作。
ORL A,data ;累加器A中的内容和直接地址单元中的内容执行逻辑或操作。结果存在寄存器A中。
ORL data,#data ;直接地址单元中的内容和立即数执行逻辑或操作。结果存在直接地址单元中。
ORL A,#data ;累加器A的内容和立即数执行逻辑或操作。结果存在累加器A中。
ORL A,Rn ;累加器A的内容和寄存器Rn中的内容执行逻辑或操作。结果存在累加器A中。
ORL data,A ;直接地址单元中的内容和累加器A的内容执行逻辑或操作。结果存在直接地址单元中。
ORL A,@Ri ;累加器A的内容和工作寄存器Ri指向的地址单元中的内容执行逻辑或操作。结果存在累加器A中。
[7]. 逻辑异或操作指令(6条)
XRL A,data ;累加器A中的内容和直接地址单元中的内容执行逻辑异或操作。结果存在寄存器A中。
XRL data,#data ;直接地址单元中的内容和立即数执行逻辑异或操作。结果存在直接地址单元中。
XRL A,#data ;累加器A的内容和立即数执行逻辑异或操作。结果存在累加器A中。
XRL A,Rn ;累加器A的内容和寄存器Rn中的内容执行逻辑异或操作。结果存在累加器A中。
XRL data,A ;直接地址单元中的内容和累加器A的内容执行逻辑异或操作。结果存在直接地址单元中。
XRL A,@Ri ;累加器A的内容和工作寄存器Ri指向的地址单元中的内容执行逻辑异或操作。结果存在累加器A中
控制转移类指令分析
[1]. 无条件转移指令(4条)
LJMP addr16 ;addr16→(PC),给程序计数器赋予新值(16位地址)
AJMP addr11 ;(PC)+2→(PC),addr11→(PC10-0)程序计数器赋予新值(11位地址),(PC15-11)不改变
SJMP rel ;(PC)+ 2 + rel→(PC)当前程序计数器先加上2再加上偏移量给程序计数器赋予新值
JMP @A+DPTR ;(A)+ (DPTR)→(PC),累加器所指向地址单元的值加上数据指针的值给程序计数器赋予新值
[2]. 条件转移指令(8条)
JZ rel ; A=0,(PC)+ 2 + rel→(PC),累加器中的内容为0,则转移到偏移量所指向的地址,否则程序往下执行
JNZ rel ; A≠0,(PC)+ 2 + rel→(PC),累加器中的内容不为0,则转移到偏移量所指向的地址,否则程序往下执行
CJNE A, data, rel ; A≠(data),(PC)+ 3 + rel→(PC),累加器中的内容不等于直接地址单元的内容,则转移到偏移量所指向的地址,否则程序往下执行
CJNE A, #data, rel ; A≠#data,(PC)+ 3 + rel→(PC),累加器中的内容不等于立即数,则转移到偏移量所指向的地址,否则程序往下执行
CJNE Rn, #data, rel ; A≠#data,(PC)+ 3 + rel→(PC),工作寄存器Rn中的内容不等于立即数,则转移到偏移量所指向的地址,否则程序往下执行
CJNE @Ri, #data, rel ; A≠#data,(PC)+ 3 + rel→(PC),工作寄存器Ri指向地址单元中的内容不等于立即数,则转移到偏移量所指向的地址,否则程序往下执行
布尔变量操作指令分析
[1]. 位传送指令(2条)
MOV C,bit ;bit→CY,某位数据送CY
MOV bit,C ;CY→bit,CY数据送某位
[2]. 位置位复位指令(4条)
CLR C ; 0→CY,清CY
CLR bit ; 0→bit,清某一位
SETB C ; 1→CY,置位CY
SETB bit ; 1→bit,置位某一位
[3]. 位运算指令(6条)
ANL C,bit ;(CY)∧(bit)→CY
ANL C,/bit ;(CY)∧( )→CY
ORL C,bit ;(CY)∨(bit)→CY
ORL C,/bit ;(CY)∧()→CY
CPL C ;()→CY
CPL bit ;()→bir
[4]. 位控制转移指令(5)
JC rel ; (CY)=1转移,(PC)+2+rel→PC,否则程序往下执行,(PC)+2→PC。
JNC rel ; (CY)=0转移,(PC)+2+rel→PC,否则程序往下执行,(PC)+2→PC。
JB bit, rel ; 位状态为1转移。
JNB bit, rel ; 位状态为0转移。
JBC bit, rel ; 位状态为1转移,并使该位清“0”。
分享到:
相关推荐
### 单片机指令功能及其机器码一览表 在单片机编程中,熟悉每一条指令的功能及其对应的机器码对于程序的设计与优化至关重要。本文将根据提供的“单片机指令功能及其机器码一览表”,详细解析各类指令的功能、用途及...
了解和掌握51单片机的寄存器功能一览表对于编写有效、高效的程序至关重要。由于51单片机的编程主要以汇编语言和C语言为主,这就要求程序员必须对这些寄存器的作用和使用方法有深入的理解。这样才能充分利用51单片机...
### 51单片机寄存器功能详解 #### 概述 51单片机是一类广泛应用在各种嵌入式系统开发中的微控制器。它以其简单易用、成本低廉的特点受到众多电子工程师的喜爱。51单片机的核心是基于8位CPU架构,拥有丰富的内部...
单片机指令功能一览表 一、传送操作 助记符 代码 说明 MOV A,Rn E8~EF 寄存器A MOV A,direct E5 dircet 直接字节送A MOV A,@Ri ER~E7 间接RAM送A MOV A,#data 74 data 立即数送A MOV Rn,A F8~FF A送寄存器 ...
在51单片机的内部架构中,寄存器扮演着至关重要的角色,它们负责存储数据和控制指令执行。下面我们将详细探讨51单片机中的特殊功能寄存器(SFR)及其功能。 首先,51单片机的SFR分布在80H-FFH的地址空间内,共有21...
本文将详细解析51单片机中的特殊功能寄存器(SFR)及其功能。 首先,51单片机的SFR分布在128个字节的存储空间内,地址范围是80H到FFH,包含了128个位地址空间。虽然理论上这个地址空间可以涵盖128个位地址,但实际...
单片机指令功能一览表涵盖了单片机执行的各种操作,包括数据处理、转移、控制流程、I/O操作等。常见的单片机芯片如MCS51系列、AVR系列、ARM Cortex-M系列等,每个系列都有其特点和适用范围。 总的来说,单片机是...
单片机延时程序是单片机编程中常见的功能,用于在执行流程中插入等待时间,使得系统能够按照预设的时间间隔执行特定操作。这里我们主要讨论51单片机的延时程序,它们通常使用C语言或汇编语言编写,并且精确度经过了...
《51单片机特殊功能寄存器详解》 51单片机是微控制器领域广泛应用的一款经典型号,其核心特性之一就是包含了21个特殊功能寄存器(Special Function Registers,简称SFRs),这些寄存器在128字节的SFR存储空间中分散...
### 三种常用单片机指令速查表及应用介绍 #### PIC系列单片机特性一览 本篇文章将针对部分常见的PIC系列单片机进行详细介绍,包括它们的基本特性、指令集以及适用场景。通过对比不同型号的特点,帮助读者更好地...
CS、DS就是所谓的段寄存器。一个程序往往分为好几个段。CS中保存了代码段的基地址,DS保存的是数据段的基地址,而IP中保存的是所要执行的下一条指令的...51单片机寄存器功能一览表 51单片机常用波特率初值表(12M晶振)
- **STC89C51RC/RD+系列单片机选型一览表**:提供了STC89C51RC/RD+系列单片机的具体型号及其特性对比,帮助用户根据实际需求选择合适的型号。 - **STC89C51RC/RD+系列单片机最小应用系统**:介绍了构建STC89C51RC/...
"8051内RAM一览表"提供了8051内部RAM的详细布局和功能,包括工作寄存器区、特殊功能寄存器SFR(Special Function Register)区以及数据存储区。工作寄存器区是CPU最快速访问的部分,用于提高运算速度;SFR区包含了...
在电子设计领域,选择合适的单片机是至关重要的一步,因为单片机是电子设备的核心处理器,决定了设备的性能和功能。"九齐8位单片机选型表"提供了全面的信息,帮助工程师们根据项目需求来挑选最适合的微控制器。九齐...
- **位单片机系列一览表.doc**:列举了义隆单片机不同系列的特性,便于选择合适的型号。 - **目录.doc**:提供了所有文档的总览,方便学习者查找和规划学习路径。 通过这些资料,学习者不仅可以了解义隆单片机的...
最后,《附 录 EMC单片机系列一览表》提供了EMC公司的单片机产品线概述,方便读者了解其他相关型号和选择适合特定应用的单片机。 通过这个入门教程,学习者不仅可以掌握EM78P系列单片机的基本知识,还能获得实际...
STC12系列单片机是宏晶公司生产...该系列单片机的命名规则、选型一览表以及管脚说明等信息也在手册中有所介绍。总的来说,STC12C5A60S2系列单片机是功能强大、性能优越的单片机产品,适合应用于各种电子项目和产品中。