单片机指令周期数字节数

合集下载

指令周期机器周期等各种周期介绍

指令周期机器周期等各种周期介绍

时钟周期:时钟周期也称为振荡周期,定义为时钟脉冲的倒数(可以这样来理解,时钟周期就是单片机外接晶振的倒数,例如12M的晶振,它的时间周期就是1/12 us),是计算机中最基本的、最小的时间单位。

在一个时钟周期内,CPU仅完成一个最基本的动作。

对于某种单片机,若采用了1MHZ的时钟频率,则时钟周期为1us;若采用4MHZ的时钟频率,则时钟周期为250us。

由于时钟脉冲是计算机的基本工作脉冲,它控制着计算机的工作节奏(使计算机的每一步都统一到它的步调上来)。

显然,对同一种机型的计算机,时钟频率越高,计算机的工作速度就越快。

8051单片机把一个时钟周期定义为一个节拍(用P表示),二个节拍定义为一个状态周期(用S表示)。

机器周期:在计算机中,为了便于管理,常把一条指令的执行过程划分为若干个阶段,每一阶段完成一项工作。

例如,取指令、存储器读、存储器写等,这每一项工作称为一个基本操作。

完成一个基本操作所需要的时间称为机器周期。

一般情况下,一个机器周期由若干个S周期(状态周期)组成。

8051系列单片机的一个机器周期同6个S周期(状态周期)组成。

前面已说过一个时钟周期定义为一个节拍(用P表示),二个节拍定义为一个状态周期(用S表示),8051单片机的机器周期由6个状态周期组成,也就是说一个机器周期=6个状态周期=12个时钟周期。

例如外接24M晶振的单片机,他的一个机器周期=12/24M 秒;指令周期:执行一条指令所需要的时间,一般由若干个机器周期组成。

指令不同,所需的机器周期也不同。

对于一些简单的的单字节指令,在取指令周期中,指令取出到指令寄存器后,立即译码执行,不再需要其它的机器周期。

对于一些比较复杂的指令,例如转移指令、乘法指令,则需要两个或者两个以上的机器周期。

通常含一个机器周期的指令称为单周期指令,包含两个机器周期的指令称为双周期指令。

总线周期:由于存贮器和I/O端口是挂接在总线上的,CPU对存贮器和I/O接口的访问,是通过总线实现的。

C51单片机指令集大全

C51单片机指令集大全

精心整理格式功能简述字节数周期一、数据传送类指令MOVA,Rn寄存器送累加器11MOVRn,A累加器送寄存器11MOVA,@Ri内部RAM单元送累加器11MOVXA,@DPTR外部RAM单元送累加器(16位地址)12MOVX@DPTR,A累加器送外部RAM单元(16位地址)12MOVCA,@A+DPTR查表数据送累加器(DPTR为基址)12MOVCA,@A+PC查表数据送累加器(PC为基址)12XCHA,Rn累加器与寄存器交换11XCHA,@Ri累加器与内部RAM单元交换11XCHDA,direct累加器与直接寻址单元交换21 XCHDA,@Ri累加器与内部RAM单元低4位交换11 SWAPA累加器高4位与低4位交换11POPdirect栈顶弹出指令直接寻址单元22 PUSHdirect直接寻址单元压入栈顶22二、算术运算类指令SUBBA,@Ri累加器减内部RAM单元和进位标志11 SUBBA,#data累加器减立即数和进位标志21 SUBBA,direct累加器减直接寻址单元和进位标志21 DECA累加器减111DECRn寄存器减111DEC@Ri内部RAM单元减111DECdirect直接寻址单元减121MULAB累加器乘寄存器B14DIVAB累加器除以寄存器B14三、逻辑运算类指令ANLA,Rn累加器与寄存器11ANLA,@Ri累加器与内部RAM单元11XRLdirect,#data直接寻址单元异或立即数32 RLA累加器左循环移位11RLCA累加器连进位标志左循环移位11RRA累加器右循环移位11RRCA累加器连进位标志右循环移位11CPLA累加器取反11CLRA累加器清零11四、控制转移类指令类ACCALLaddr112KB范围内绝对调用22 AJMPaddr112KB范围内绝对转移22 LCALLaddr162KB范围内长调用32 LJMPaddr162KB范围内长转移32MOVbit,CC送直接寻址位21 CLRCC清零11CLRbit直接寻址位清零21CPLCC取反11CPLbit直接寻址位取反21 SETBCC置位11SETBbit直接寻址位置位21ANLC,bitC逻辑与直接寻址位22ANLC,/bitC逻辑与直接寻址位的反22ORLC,bitC逻辑或直接寻址位22ORLC,/bitC逻辑或直接寻址位的反22JCrelC为1转移22MOVA,#0FFHMOVP1,#0FFH;开始时全灭;-------------------------------逐个点亮MOVR2,#8LOOP1:CLRCRLCAMOVP1,ACALLDL500MSDJNZR2,LOOP1CALLDL500MS;0.5sDJNZR2,LOOP3;------------------------------- DJNZR3,LOOP0MOVP1,#01001001B;5、显示为01001001 CALLDL500MSCALLDL500MS;共1sSJMP0000H;重新开始N遍;-------------------------------延时子程序。

指令周期机器周期等各种周期介绍

指令周期机器周期等各种周期介绍

时钟周期:时钟周期也称为振荡周期,定义为时钟脉冲的倒数(可以这样来理解,时钟周期就是单片机外接晶振的倒数,例如12M的晶振,它的时间周期就是1/12 us),是计算机中最基本的、最小的时间单位。

在一个时钟周期内,CPU仅完成一个最基本的动作。

对于某种单片机,若采用了1MHZ的时钟频率,则时钟周期为1us;若采用4MHZ的时钟频率,则时钟周期为250us。

由于时钟脉冲是计算机的基本工作脉冲,它控制着计算机的工作节奏(使计算机的每一步都统一到它的步调上来)。

显然,对同一种机型的计算机,时钟频率越高,计算机的工作速度就越快。

8051单片机把一个时钟周期定义为一个节拍(用P表示),二个节拍定义为一个状态周期(用S表示)。

机器周期:在计算机中,为了便于管理,常把一条指令的执行过程划分为若干个阶段,每一阶段完成一项工作。

例如,取指令、存储器读、存储器写等,这每一项工作称为一个基本操作。

完成一个基本操作所需要的时间称为机器周期。

一般情况下,一个机器周期由若干个S周期(状态周期)组成。

8051系列单片机的一个机器周期同6个S周期(状态周期)组成。

前面已说过一个时钟周期定义为一个节拍(用P表示),二个节拍定义为一个状态周期(用S表示),8051单片机的机器周期由6个状态周期组成,也就是说一个机器周期=6个状态周期=12个时钟周期。

例如外接24M晶振的单片机,他的一个机器周期=12/24M 秒;指令周期:执行一条指令所需要的时间,一般由若干个机器周期组成。

指令不同,所需的机器周期也不同。

对于一些简单的的单字节指令,在取指令周期中,指令取出到指令寄存器后,立即译码执行,不再需要其它的机器周期。

对于一些比较复杂的指令,例如转移指令、乘法指令,则需要两个或者两个以上的机器周期。

通常含一个机器周期的指令称为单周期指令,包含两个机器周期的指令称为双周期指令。

总线周期:由于存贮器和I/O端口是挂接在总线上的,CPU对存贮器和I/O接口的访问,是通过总线实现的。

单片机指令大全

单片机指令大全

单片机指令大全
指令格式功能简述字节数周期一、数据传送类指令
MOV A, Rn 寄存器送累加器 1 1 MOV Rn,A 累加器送寄存器 1 1 MOV A ,@Ri 内部RAM单元送累加器 1 1 MOV @Ri ,A 累加器送内部RAM单元 1 1 MOV A ,#data 立即数送累加器 2 1 MOV A ,direct 直接寻址单元送累加器 2 1 MOV direct ,A 累加器送直接寻址单元 2 1 MOV Rn,#data 立即数送寄存器 2 1 MOV direct ,#data 立即数送直接寻址单元 3 2 MOV @Ri ,#data 立即数送内部RAM单元 2 1 MOV direct ,Rn 寄存器送直接寻址单元 2 2 MOV Rn ,direct 直接寻址单元送寄存器 2 2 MOV direct ,@Ri 内部RAM单元送直接寻址单元 2 2 MOV @Ri ,direct 直接寻址单元送内部RAM单元 2 2 MOV direct2,direct1 直接寻址单元送直接寻址单元 3 2 MOV DPTR ,#data16 16位立即数送数据指
针 3 2
MOVX A ,@Ri 外部RAM单元送累加器(8位地
址) 1 2。

关于51单片机程序汇编的指令周期表

关于51单片机程序汇编的指令周期表

C51汇编伪指令:1、DS ---预留存储区命令格式:〔标号:〕 DS 表达式值其功能是从指定地址开始,定义一个存储区,以备源程序使用。

存储区预留的存储单元数由表达式的值决定。

TMP: DS 1从标号TEP地址处开始保留1个存储单元(字节)。

2、BIT---定义位命令格式:字符名称BIT 位地址其功能用于给字符名称定义位地址。

SPK BIT P3.7经定义后,允许在指令中用SPK代替P3.7。

3、USING指令USING指令通知汇编器使用8051的哪一个工作寄存器组。

格式: USING 表达式(值必须为0-3,默认值为0。

)USING 0使用第0组工作寄存器。

4、SEGMENT指令SEGMENT 指令用来声明一个再定位段和一个可选的再定位类型。

格式:再定位段名 SEGMENT 段类型〔再定位类型〕其中,“再定位段名”用于指明所声明的段。

“段类型”用于指定所声明的段将处的存储器地址空间。

可用的段类型有 CODE、XDATA、DATA、IDATA和BIT。

STACK_SEG SEGMENT IDATADATA_SEG SEGMENT DATA5、RSEG---再定位段选择指令再定位段选择指令为RSEG,用于选择一个已在前面定义过的再定位段作为当前段。

格式: RSEG 段名段名必须是在前面已经声明过的再定位段。

DATA_SEG SEGMENT DATA ;声明一个再定位DATA段RSEG DATA_SEG ;选择前面声明的再定位DATA段作为当前段6、绝对段选择指令CSEG---绝对代码段DSEG---内部绝对数据段XSEG---外部绝对数据段ISEG---内部间接寻址数据段BSEG---绝对位寻址数据段格式:CSEG [AT 绝对地址表达式]DSEG [AT 绝对地址表达式]XSEG [AT 绝对地址表达式]ISEG [AT 绝对地址表达式]BSEG [AT 绝对地址表达式]括号内是可选项,用来指定当前绝对段的基地址。

MCS-51单片机的指令时序

MCS-51单片机的指令时序

MCS-51单片机的指令时序时序是用定时单位来描述的,MCS-51的时序单位有四个,它们分别是节拍、状态、机器周期和指令周期,接下来我们分别加以说明。

·节拍与状态:我们把振荡脉冲的周期定义为节拍(为方便描述,用P表示),振荡脉冲经过二分频后即得到整个单片机工作系统的时钟信号,把时钟信号的周期定义为状态(用S表示),这样一个状态就有两个节拍,前半周期相应的节拍我们定义为1(P1),后半周期对应的节拍定义为2(P2)。

·机器周期:MCS-51有固定的机器周期,规定一个机器周期有6个状态,分别表示为S1-S6,而一个状态包含两个节拍,那么一个机器周期就有12个节拍,我们可以记着S1P1、S1P2……S6P1、S6P2,一个机器周期共包含12个振荡脉冲,即机器周期就是振荡脉冲的12分频,显然,如果使用6MHz的时钟频率,一个机器周期就是2us,而如使用12MHz的时钟频率,一个机器周期就是1us。

·指令周期:执行一条指令所需要的时间称为指令周期,MCS-51的指令有单字节、双字节和三字节的,所以它们的指令周期不尽相同,也就是说它们所需的机器周期不相同,可能包括一到四个不等的机器周期(这些内容,我们将在下面的章节中加以说明)。

·MCS-51的指令时序:MCS-51指令系统中,按它们的长度可分为单字节指令、双字节指令和三字节指令。

执行这些指令需要的时间是不同的,也就是它们所需的机器周期是不同的,有下面几种形式:·单字节指令单机器周期·单字节指令双机器周期·双字节指令单机器周期·三字节指令双机器周期·单字节指令四机器周期(如单字节的乘除法指令)下图是MCS-51系列单片机的指令时序图:上图是单周期和双周期取指及执行时序,图中的ALE脉冲是为了锁存地址的选通信号,显然,每出现一次该信号单片机即进行一次读指令操作。

从时序图中可看出,该信号是时钟频率6分频后得到,在一个机器周期中,ALE信号两次有效,第一次在S1P2和S2P1期间,第二次在S4P2和S5P1期间。

MCS-51单片机指令系统教程(2)

MCS-51单片机指令系统教程(2)

片外数据 存储器 64KB
1,访问片内RAM20H存储单元; MOV A,20H
2,访问片外RAM存储单元; MOV R0,#20H MOVX A,@R0
0000H
3,尽管片内与片外的RAM单元 的00H-FFH地址相重叠但由 于指令的不同不会发生地址
混乱。
片外数据存储器 64KB个字节
返回
2.2.5 变址寻址
由操作码和操作数(或操作数地址)构成指令的结构。
举例:MOV A,#0FFH
ADD A,R0
返回
2.1.2 指令的三种表示形式:
指令的表示形式是识别指令的标志。
1,二进制的表示形式:(以“累加器的内容+08H”为例) 00100100B 操作码 OP (加法) 00001000B 操作数DATA(08H)
乘法指令 16位寄存器DPTR加一
从表中可见,指令的字节数与指令周期不是对等的关系 返回
2.1.4 指令的分类
MCS-51单片机的指令如果按功能划分可以分为五类: 1,数据传送类指令:完成数据在单片机内部之间的传送。
分为8位数和16位两种。除了奇偶位外,指令的执行对 PSW无影响。
2,算术运算指令:用于操作数之间的加、减、乘除运算。 【特点】:多数情况下:操作数之一在累加器A中,结果 也保留在A中,运算结果要影响PSW(进位标志、奇偶和 溢出标志等)。
“机器码”后才能为CPU所识别和执行。 3,三种不同的表示方法适用于不同的场合。
返回
本章内容都以汇编的形式介绍指令系统。
2.1.3 指令的字节数
在MCS-51单片机的指令系统中,因指令操作码和操作数 的不同,指令(在存储器中)长度也各不相同。
分为单字节、双字节和三字节。

第3章 MCS-51指令系统

第3章 MCS-51指令系统

16
MCS-51单片机指令系统
MCS-51单片机指令系统包括111条指令 按功能可以划分为以下5类:
1. 数据传送和交换指令(29条)
2. 算术运算指令(24条) 3. 逻辑运算指令(24条) 4. 控制转移指令(17条) 5. 位操作指令(17条)
17

数据传送和交换类指令主要有以下几种:
1. 2. 3.

30H
Eg:MOV 30H,#33H 33H
30H
XX 30H
33H
30H
31H
Eg:MOV 30H,31H
55H
XX
55H
25
A

30H XX
地址
30H 33H
Eg:MOV 30H, A
33H
R0
Eg:MOV 30H,@R0
55H
取出
30H 78H 30H
55H
R3
78H
30H XX

55H
MOV A , 30H
XX 55H
30H
A
6
3、寄存器寻址
寄存器寻址是指将操作数存放于寄存器中,寄存器包括工作寄 存器R0~R7、累加器A、通用寄存器B、地址寄存器DPTR等。 数据存放在R0~R7中的某个通用寄存器内,或者放在某个专用 寄存器中。 e.g.: MOV A,R7 ADD A,R0
DPTR
2000H
DPTR 2000H
XXXX
Eg:将数据指针DPTR指向存于ROM中的表格首地址。
MOV DPTR,#TABLE
27
三、片外数据传递指令
使用DPTR和Ri进行间接寻址 MOVX A, @DPTR ;A ←((DPTR))片外 MOVX A,@Ri ;A ←((Ri))片外 MOVX @DPTR,A ;(DPTR)片外←(A) MOVX @Ri,A ;(Ri)片外←(A) 注意: 该指令用于在单片机和外部RAM、扩展I/O的数据传送; 使用Ri时,只能访问低8位地址为00H~FFH地址段; 使用DPTR时,能访问0000H ~ FFFFH地址段。

MCS-51单片机指令周期表

MCS-51单片机指令周期表

MCS-51单片机指令周期表mcs-51指令速查表类别指令格式功能简述字节数周期MOV A,Rn寄存器送累加器11MOV Rn,A累加器送寄存器11MOV A,@Ri内部RAM单元送累加器11MOV@Ri,A累加器送内部RAM单元11MOV A,#data立即数送累加器21MOV A,direct直接寻址单元送累加器21MOV direct,A累加器送直接寻址单元21MOV Rn,#data立即数送寄存器21MOV direct,#data立即数送直接寻址单元32MOV@Ri,#data立即数送内部RAM单元21MOV direct,Rn寄存器送直接寻址单元22数据传送类指令期MOV Rn,direct直接寻址单元送寄存器22MOV direct,@Ri内部RAM单元送直接寻址单元22MOV@Ri,direct直接寻址单元送内部RAM单元22MOV direct2,direct1直接寻址单元送直接寻址单元32MOV DPTR,#data1616位立即数送数据指针32MOVX A,@Ri外部RAM单元送累加器(8位地址)12MOVX@Ri,A累加器送外部RAM单元(8位地址)12MOVX A,@DPTR外部RAM单元送累加器(16位地址)12MOVX@DPTR,A累加器送外部RAM单元(16位地址)12MOVC A,@A+DPTR查表数据送累加器(DPTR为基址)12MOVC A,@A+PC查表数据送累加器(PC为基址)12XCH A,Rn累加器与寄存器交换11算术运算类指令XCH A,@Ri累加器与内部RAM单元交换11XCHD A,direct累加器与直接寻址单元交换21XCHD A,@Ri累加器与内部RAM单元低4位交换11SWAP A累加器高4位与低4位交换11POP direct栈顶弹出指令直接寻址单元22PUSH direct直接寻址单元压入栈顶22ADD A,Rn累加器加寄存器11ADD A,@Ri累加器加内部RAM单元11ADD A,direct累加器加直接寻址单元21ADD A,#data累加器加立即数21ADDC A,Rn累加器加寄存器和进位标志11ADDC A,@Ri累加器加内部RAM单元和进位标志11ADDC A,#data累加器加立即数和进位标志21ADDC A,direct累加器加直接寻址单元和进位标志21INC A累加器加111INC Rn寄存器加111INC direct直接寻址单元加121INC@Ri内部RAM单元加111INC DPTR数据指针加112DA A十进制调整11SUBB A,Rn累加器减寄存器和进位标志11SUBB A,@Ri累加器减内部RAM单元和进位标志11SUBB A,#data累加器减立即数和进位标志21SUBB A,direct累加器减直接寻址单元和进位标志21DEC A累加器减111DEC Rn寄存器减111DEC@Ri内部RAM单元减111DEC direct直接寻址单元减121MUL AB累加器乘寄存器B14DIV AB累加器除以寄存器B14ANL A,Rn累加器与寄存器11逻辑运算类指令ANL A,@Ri累加器与内部RAM单元11ANL A,#data累加器与立即数21ANL A,direct累加器与直接寻址单元21ANL direct,A直接寻址单元与累加器21ANL direct,#data直接寻址单元与立即数31ORL A,Rn累加器或寄存器11ORL A,@Ri累加器或内部RAM单元11ORL A,#data累加器或立即数21ORL A,direct累加器或直接寻址单元21ORL direct,A直接寻址单元或累加器21ORL direct,#data直接寻址单元或立即数31XRL A,Rn累加器异或寄存器11XRL A,@Ri累加器异或内部RAM单元11XRL A,#data累加器异或立即数21XRL A,direct累加器异或直接寻址单元21XRL direct,A直接寻址单元异或累加器21XRL direct,#data直接寻址单元异或立即数32RL A累加器左循环移位11RLC A累加器连进位标志左循环移位11RR A累加器右循环移位11RRC A累加器连进位标志右循环移位11CPL A累加器取反11CLR A累加器清零11ACCALL addr112KB范围内绝对调用22AJMP addr112KB范围内绝对转移22LCALL addr162KB范围内长调用32LJMP addr162KB范围内长转移32SJMP rel相对短转移22JMP@A+DPTR相对长转移12RET子程序返回12RET1中断返回12控制转移类指令JZ rel累加器为零转移22JNZ rel累加器非零转移22CJNE A,#data,rel累加器与立即数不等转移32CJNE A,direct,rel累加器与直接寻址单元不等转移32CJNE Rn,#data,rel寄存器与立即数不等转移32CJNE@Ri,#data,rel RAM单元与立即数不等转移32DJNZ Rn,rel寄存器减1不为零转移22DJNZ direct,rel直接寻址单元减1不为零转移32NOP空操作11MOV C,bit直接寻址位送C21MOV bit,C C送直接寻址位21CLR C C清零11CLR bit直接寻址位清零21CPL C C取反11CPL bit直接寻址位取反21SETB C C置位11SETB bit直接寻址位置位21布尔操作类指令ANL C,bit C逻辑与直接寻址位22ANL C,/bit C逻辑与直接寻址位的反22ORL C,bit C逻辑或直接寻址位22ORL C,/bit C逻辑或直接寻址位的反22JC rel C为1转移22JNC rel C为零转移22JB bit,rel直接寻址位为1转移32JNB bit,rel直接寻址为0转移32JBC bit,rel直接寻址位为1转移并清该位32。

单片机指令周期怎么计算

单片机指令周期怎么计算

单片机指令周期怎么计算
指令周期:指令周期执行某一条指令所消耗的时间,它等于机器周期的整数倍。

传统的80C51单片机的指令周期大多数是单周期指令,也就是指令周期=机器周期,少部分是双周期指令。

现在(截至2012)新的单片机已经能做到不分频了,并且尽量单指令周期,就是指令周期=机器周期=时钟周期。

来看这张8051单片机外部数据,这里ALE和$PSEN$的变化频率已经小于一个机器周期,如果使用C语言模拟这个信号是没有办法做到的一一对应的,所以只能尽量和上面的时序相同,周期延长。

指令周期是不确定的,因为她和该条指令所包含的机器周期有关。

一个指令周期=1个(或2个或3个或4个)机器周期,像乘法或除法就含有4个机器周期,单指令就只含有1个机器周期。

对于大多说的51单片机来说,1个机器周期=12个时钟周期(或振。

各循环占用的指令周期计算

各循环占用的指令周期计算

for 循环指令周期的问题
影响因素:
1.单片机的指令集合,指令所花费的时间周期
2.循环变量的数据类型,所占字节数越大,所占指令周期也就越大int 2个指令周期char 1个指令周期
3.循环体完成的工作
对于循环代码
for(i=0;i<4;i++); ef(int)
对应汇编指令如下:
for(i=0;i<1;i++)
0000 ; i -> R16,R17
0000 ; for(i=0;i<4;i++);
0000 0027 clr R16
0002 1127 clr R17
0004 L2:
0004 .dbline 4
0004 L3:
0004 .dbline 4
0004 0F5F subi R16,255 ; offset = 1
0006 1F4F sbci R17,255
0008 .dbline 4
0008 0430 cpi R16,4
000A E0E0 ldi R30,0
000C 1E07 cpc R17,R30
000E D4F3 brlt L2
开始循环前变量i初始化占用两个指令周期,每次变量i的累加占用两个指令周期。

跳转命令的判断占用三个指令周期,跳转命令占用两个指令周期。

所以每次循环占用七个指令周期。

While循环指令周期的问题
Unsigned int i;
i=10;
while(i>0)
i--;
while循环编译成汇编用的是13条指令该处循环用了初始化2个周期+13*10
if循环指令周期的问题比如
int AA;
if(AA==1)。

单片机的几个周期介绍

单片机的几个周期介绍

单片机的几个周期介绍
(1)时钟周期
也称为振荡周期,定义为时钟频率的倒数(外接12MHZ的晶振,其时钟周期就是1/12us),t它是单片机中最基本、最小的时间单位。

在一个时钟周期内,CPU仅完成一个最基本的动作
(2)状态周期
它是时钟周期的两倍。

(3)机器周期
在一个操作周期内,单片机完成一项基本周期,如取指令、存储器读/写等,它是由12个时钟周期(6个状态周期)组成。

(4)指令周期
它是指CPU执行一条指令的所需要的时间。

(5)左移<<
每执行一次左移指令,被操作的数将最高位移入单片机PSW寄存器的CY位,CY 位中原来的数丢弃,最低位补 0 ,其他位向左移动一位。

111条单片机指令及解释

111条单片机指令及解释
Bit
片内RAM中的可寻址位和SFR的可寻址位
Direct
直接地址,范围片内RAM单元(00H-7FH)和80H-FFH
$
指本条指令的起始位置
MOV A,@Ri;将Ri所寻址的RAM内容传送到累加器A
A
累加器十进制调整
1
1
ADD
A,Rn
寄存器与累加器求和
1
1
ADD
A,direct
直接地址与累加器求和
2
1
ADD
A,@Ri
间接RAM与累加器求和
1
1
ADD
A,#data
立即数与累加器求和
2
1
ADDC
A,Rn
寄存器与累加器求和(带进位)
1
1
ADDC
A,direct
直接地址与累加器求和(带进位)
2
1
ADDC
2
1
MOV
direct,@Ri
间接RAM传送到直接地址
2
2
MOV
direct,#data
立即数传送到直接地址
3
2
MOV
@Ri,A
直接地址传送到直接地址
1
2
MOV
@Ri,direct
直接地址传送到间接RAM
2
1
MOV
@Ri,#data
立即数传送到间接RAM
2
2
MOV
DPTR,#data16
16位常数加载到数据指针
1
2
PUSH
direct
直接地址压入堆栈
2
2
POP
direct
直接地址弹出堆栈
2
2

51单片机指令时间计算

51单片机指令时间计算

51单片机指令时间计算引言:在嵌入式系统中,单片机是一种常用的控制器,而51单片机指令时间计算是评估单片机执行效率的重要指标之一。

本文将详细介绍51单片机指令时间计算的相关内容,包括指令周期、机器周期、时钟周期以及如何计算指令的执行时间。

一、指令周期指令周期是指单片机执行一条指令所需要的时间。

在51单片机中,一个指令周期包括12个机器周期。

每个机器周期的时间为1/12个机器周期。

二、机器周期机器周期是指单片机所需的最小时间单位,由时钟周期决定。

在51单片机中,一个机器周期包括6个时钟周期。

每个时钟周期的时间为1/6个机器周期。

三、时钟周期时钟周期是指单片机内部时钟发生一次跳变所需要的时间。

在51单片机中,时钟周期的时间周期为1/12个机器周期。

四、指令执行时间计算指令执行时间可以通过以下公式计算:指令执行时间 = 指令周期× 时钟周期五、示例计算假设某条指令的指令周期为3个机器周期,时钟周期为1.5个机器周期,则该指令的执行时间计算如下:指令执行时间 = 3个机器周期× 1.5个机器周期 = 4.5个机器周期六、指令执行时间的影响因素1.指令周期的长度:不同的指令周期长度会直接影响指令的执行时间。

指令周期越长,执行时间越长。

2.时钟周期的长度:时钟周期的长度与单片机的工作频率有关。

时钟周期越长,执行时间越长。

3.指令的类型:不同类型的指令可能需要不同的机器周期和时钟周期来执行。

4.指令之间的依赖关系:如果一个指令依赖于前面的指令执行结果,那么它的执行时间将会受到前面指令执行时间的影响。

七、指令执行时间的应用1.性能评估:通过计算指令执行时间,可以评估单片机的性能表现,从而选择合适的单片机。

2.程序优化:了解指令执行时间可以帮助程序员优化程序,提高程序的执行效率。

3.实时系统设计:在实时系统中,需要根据指令执行时间来确定任务的调度策略,以保证系统的实时性。

八、结论51单片机指令时间计算是评估单片机执行效率的重要指标之一,通过计算指令周期、机器周期和时钟周期,可以得到指令的执行时间。

1解:8051的指令系统由111条指令组成如果按字节数分类

1解:8051的指令系统由111条指令组成如果按字节数分类

1001.解:8051的指令系统由111条指令组成。

如果按字节数分类,有49条单字节指令46条双字节指令和16条三字节指令,以单字节指令为主;如果按照指令执行时间分类,有64条单周期指令、45条双周期指令和2条四周期指令,以单周期指令为主。

8051的指令系统具有以下特点:(1)存储效率高、执行速度快,可以进行直接地址到直接地址的数据传送,能把一个并行I/O 口中的内容传送到内部RAM 单元中而不必经过累加器A 或工作寄存器Rn 。

这样可以大大提高传送速度和缓解累加器A 的瓶颈效应。

(2)用变址寻址方式访问程序存储器中的表格,将程序存储器单元中的固定常数或表格字节内容传送到累加器A 中。

这为编成翻译算法提供了方便。

(3)在算术运算指令中设有乘法和除法指令(4)指令系统中一些对I/O 口进行操作的指令具有“读——修改——写”的功能。

这一功能指:在执行读锁存器的指令时,CPU 首先完成将锁存器的值通过缓冲器BUF2度入内部,进行修改、改变,然后重新写到锁存器中去。

这种类型指令包含所有的逻辑操作和位操作指令。

(5)8051单片机内部有一个布尔处理器,对为地址空间具有丰富的位操作指令。

布尔操作类指令有17条,包括布尔传送指令、布尔状态控制指令、布尔逻辑操作指令、布尔条件转移指令。

2.解:MCS-51单片机指令系统按功能可分为5类:(1)数据传送指令 (2)算术运算指令(3)逻辑运算和移位指令 (4)控制转移指令(5)位操作指令MCS-51单片机的指令系统提供了七种寻址方式,其对应的寻址范围如下表:3.解: 访问特殊功能寄存器,应采用直接寻址、位寻址方式。

访问外部数据存储器,应采用寄存器间接寻址方式。

在0~255B 范围内,可用寄存器R0、R1间接寻址:MOVX A ,@R0 或 MOVX A ,@R1寻址方式 使用的变量 寻址范围 立即寻址 程序存储器直接寻址内部RAM 低128个字节; 特殊功能寄存器SFR寄存器寻址 R0~R7;A 、B 、DPTR 、C寄存器间接寻址 @R0、@R1、SP 内部RAM 、堆栈指针SP @R0、@R1、@DPTR 外部RAM变址寻址 @A+PC 、@A+DPTR 程序存储器 相对寻址 PC+偏移量 程序存储器位寻址内部RAM 低128B 位寻址区 可位寻址的特殊功能寄存器位2MOVX @R0,A 或MOVX @R1,A在0~64KB范围内,可用16位寄存器DPTR间接寻址:MOVX A,@DPTRMOVX @DPTR,A4.解:这条指令是在进行BCD码加法运算时,跟在“ADD”和“ADDC”指令之后,用来对BCD码的加法运算结果自动进行修正的,使其仍为BCD码表达形式。

谈谈51单片机的指令字节数.doc

谈谈51单片机的指令字节数.doc

谈谈51单片机的指令字节数现在的单片机程序大多都用C语言来编写了,汇编看起来有点OUT了。

可是有时候汇编却很有用,因为它执行的效率高,而且每条指令占用的字节数和时钟周期都是确定的,这对于查表编程及对时钟要求严格的地方来说,是非常有用的。

在嵌入式操作系统的移植中,有一部分代码是得用汇编来写的,不过这跟今天要谈的内容无关。

现有来谈谈MCS-51单片机的指令的字节数。

汇编语言的语句的格式为:标号段:操作码段第一操作数,第二操作数;注释段(如START: MOV A,#00H ;把0赋给A)其中操作码段是必段的,其他的段是根据不同的指令而不同,操作数段可以只有一个操作数,也可以有两个操作数,有时还会有三个操作数的情况。

在51单片机中,有单字节指令、双字节指令和三字节指令。

只要理解了指令占用的这些字节都是用来存放哪些量的,那自然就会判断不同的指令是多少字节指令了。

1、操作码段占用一个字节。

2、8位立即数占用一个字节,16位立即数占用两个字节。

3、8位操作数地址占用一个字节,16位操作数地址占用两个字节。

4、CPU内部的各种寄存器不占用指令字节,如A, B, R0, R1, DPTR等。

现在就可以判断51的指令占用的字节数了:MOV A, R0 ;这是单字节指令,其中MOV占用一个字节,A和R0是CPU内部寄存器,不占用指令字节。

MOV A, #07H ;这是双字节指令,其中MOV占用一个字节,8位立即数#07H占用一个字节。

MOV DPTR, #0106H ;这是三字节指令,MOV占用一个字节,16位立即数#0106H 占用两个字节。

MOV 07H, #07H ;这是三字节指令,MOV占用一个字节,8位地址07H占用一个字节,8位立即数#07H占用一个字节。

关于BCD 码减数求补的问题2009-11-23 2:40有这样一个问题:汇编程序如下:ORG 0100HMOV R1, #50HMOV R0, #60HCLR CCALL BSUBMOV 40H, A...BSUB: MOV A, #9AHSUBB A, @R0ADD A, @R1DA AINC R0INC R1CPL CRET问:其中9AH 的作用是什么,能不能换成别的数!问题补充:BCD 码减法程序。

C单片机指令集大全

C单片机指令集大全

格式功能简述字节数周期一、数据传送类指令MOVA,Rn寄存器送累加器11MOVRn,A累加器送寄存器11MOVA,@Ri内部RAM单元送累加器11MOV@Ri,A累加器送内部RAM单元11MOVA,#data立即数送累加器21MOVA,direct直接寻址单元送累加器21MOVdirect,A累加器送直接寻址单元21MOVRn,#data立即数送寄存器21MOVdirect,#data立即数送直接寻址单元32MOV@Ri,#data立即数送内部RAM单元21MOVdirect,Rn寄存器送直接寻址单元22MOVRn,direct直接寻址单元送寄存器22MOVdirect,@Ri内部RAM单元送直接寻址单元22MOV@Ri,direct直接寻址单元送内部RAM单元22 MOVdirect2,direct1直接寻址单元送直接寻址单元32 MOVDPTR,#data1616位立即数送数据指针32 MOVXA,@Ri外部RAM单元送累加器(8位地址)12 MOVX@Ri,A累加器送外部RAM单元(8位地址)12 MOVXA,@DPTR外部RAM单元送累加器(16位地址)12 MOVX@DPTR,A累加器送外部RAM单元(16位地址)12 MOVCA,@A+DPTR查表数据送累加器(DPTR为基址)12 MOVCA,@A+PC查表数据送累加器(PC为基址)12 XCHA,Rn累加器与寄存器交换11XCHA,@Ri累加器与内部RAM单元交换11XCHDA,direct累加器与直接寻址单元交换21 XCHDA,@Ri累加器与内部RAM单元低4位交换11 SWAPA累加器高4位与低4位交换11POPdirect栈顶弹出指令直接寻址单元22PUSHdirect直接寻址单元压入栈顶22二、算术运算类指令ADDA,Rn累加器加寄存器11ADDA,@Ri累加器加内部RAM单元11ADDA,direct累加器加直接寻址单元21ADDA,#data累加器加立即数21ADDCA,Rn累加器加寄存器和进位标志11ADDCA,@Ri累加器加内部RAM单元和进位标志11 ADDCA,#data累加器加立即数和进位标志21 ADDCA,direct累加器加直接寻址单元和进位标志21 INCA累加器加111INCRn寄存器加111INCdirect直接寻址单元加121INC@Ri内部RAM单元加111INCDPTR数据指针加112DAA十进制调整11SUBBA,Rn累加器减寄存器和进位标志11SUBBA,@Ri累加器减内部RAM单元和进位标志11 SUBBA,#data累加器减立即数和进位标志21 SUBBA,direct累加器减直接寻址单元和进位标志21 DECA累加器减111DECRn寄存器减111DEC@Ri内部RAM单元减111DECdirect直接寻址单元减121MULAB累加器乘寄存器B14DIVAB累加器除以寄存器B14三、逻辑运算类指令ANLA,Rn累加器与寄存器11ANLA,@Ri累加器与内部RAM单元11ANLA,#data累加器与立即数21ANLA,direct累加器与直接寻址单元21 ANLdirect,A直接寻址单元与累加器21 ANLdirect,#data直接寻址单元与立即数31ORLA,Rn累加器或寄存器11ORLA,@Ri累加器或内部RAM单元11 ORLA,#data累加器或立即数21ORLA,direct累加器或直接寻址单元21 ORLdirect,A直接寻址单元或累加器21 ORLdirect,#data直接寻址单元或立即数31 XRLA,Rn累加器异或寄存器11XRLA,@Ri累加器异或内部RAM单元11 XRLA,#data累加器异或立即数21XRLA,direct累加器异或直接寻址单元21 XRLdirect,A直接寻址单元异或累加器21 XRLdirect,#data直接寻址单元异或立即数32 RLA累加器左循环移位11RLCA累加器连进位标志左循环移位11RRA累加器右循环移位11RRCA累加器连进位标志右循环移位11CPLA累加器取反11CLRA累加器清零11四、控制转移类指令类ACCALLaddr112KB范围内绝对调用22AJMPaddr112KB范围内绝对转移22LCALLaddr162KB范围内长调用32LJMPaddr162KB范围内长转移32SJMPrel相对短转移22JMP@A+DPTR相对长转移12RET子程序返回12RET1中断返回12JZrel累加器为零转移22JNZrel累加器非零转移22CJNEA,#data,rel累加器与立即数不等转移32 CJNEA,direct,rel累加器与直接寻址单元不等转移32 CJNERn,#data,rel寄存器与立即数不等转移32CJNE@Ri,#data,relRAM单元与立即数不等转移32 DJNZRn,rel寄存器减1不为零转移22 DJNZdirect,rel直接寻址单元减1不为零转移32 NOP空操作11五、布尔操作类指令MOVC,bit直接寻址位送C21MOVbit,CC送直接寻址位21CLRCC清零11CLRbit直接寻址位清零21CPLCC取反11CPLbit直接寻址位取反21SETBCC置位11SETBbit直接寻址位置位21ANLC,bitC逻辑与直接寻址位22ANLC,/bitC逻辑与直接寻址位的反22ORLC,bitC逻辑或直接寻址位22ORLC,/bitC逻辑或直接寻址位的反22JCrelC为1转移22JNCrelC为零转移22JBbit,rel直接寻址位为1转移32JNBbit,rel直接寻址为0转移1、D1~D8八个彩灯按规定顺序依次点亮(间隔1秒),最后全亮;2、按规定顺序依次熄灭(间隔1秒),最后全灭;3、八个灯同时点亮,保持1秒;4、八个灯同时熄灭,保持0.5秒;再将第3、4步重复4遍,最后整个程序再重复N遍。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ACALL addr11 2 2
JNC rel 2 2
AJMP addr11 2 2
JB bit,rel 3 2
LCALL addr16 3 2
JNB bit,rel 3 2
XRL A,#data 2 1
ANL direct,A 2 1
XRL direct,A 2 1
ANL direct,#data 3 2
XRL direct,#data 3 2
ORL A,@Ri 1 1
MOV direct,A 2 1
XCH A,Rn 1 1
MOV direct,@Ri 2 2
XCH A,direct 2 1
MOV direct,Rn 2 2
XCHD A,@Ri 1 1
MOV direct,direct 3 2
ANL A,@Ri 1 1
XRL A,@Ri 1 1
ANL A,Rn 1 1
XRL A,Rn 1 1
ANL A,direct 2 1
XRL A,direct 2 1
ANL A,#data 2 1
MOV A,Rn 1 1
MOVC A,@A+DPTR 1 2
MOV A,direct 2 1
MOVC A,Βιβλιοθήκη A+PC 1 2 MOV A,#data 2 1
MOVX A,@Ri 1 2
CLR A 1 1
ORL A,Rn 1 1
CPL A 1 1
ORL A,direct 2 1
RL A 1 1
ORL A,#data 2 1
RLC A 1 1
ORL direct,A 2 1
8051 INSTRUCTION SET
1.Arithmetic operations:
Mnemonic Byte Cyc
ADD A,@Ri 1 1;该指令占一个字节,1个机器周期
ADD A,Rn 1 1
ADD A,direct 2 1
MOV direct,#data 3 2
4.Boolean variable manipulation:
Mnemonic Byte Cyc
CLR C 1 1
ANL C,bit 2 2
SETB C 1 1
ANL C,/bit 2 2
RR A 1 1
ORL direct,#data 3 2
RRC A 1 1
SWAP A 1 1
3.Data transfer:
Mnemonic Byte Cyc
MOV A,@Ri 1 1
MOV DPTR,#data16 3 2
SUBB A,Rn 1 1
SUBB A,direct 2 1
SUBB A,#data 2 1
INC A 1 1
INC @Ri 1 1
INC Rn 1 1
INC DPTR 1 1
INC direct 2 1
ADD A,#data 2 1
ADDC A,@Ri 1 1
ADDC A,Rn 1 1
ADDC A,direct 2 1
ADDC A,#data 2 1
SUBB A,@Ri 1 1
MOV Rn,A 1 1
PUSH direct 2 2
MOV Rn,direct 2 2
POP direct 2 2
MOV Rn,#data 2 1
XCH A,@Ri 1 1
LJMP addr16 3 2
JBC bit,rel 3 2
SJMP rel 2 2
CJNE A,direct,rel 3 2
JMP @A+DPTR 1 2
CJNE A,#data,rel 3 2
INC direct 2 1
DEC A 1 1
DEC @Ri 1 1
DEC Rn 1 1
DEC direct 2 1
MUL AB 1 4
DIV AB 1 4
DA A 1 1
2.Logical opreations:
DJNZ Rn,rel 2 2
CJNE @Ri,#data,rel 3 2
DJNZ direct,rel 3 2
CJNE Rn,#data,rel 3 2
CPL C 1 1
ORL C,bit 2 2
CLR bit 2 1
ORL C,/bit 2 2
SETB bit 2 1
MOV C,bit 2 1
CPL bit 2 1
MOV bit,C 2 2
5.Program and machine control:
Mnemonic Byte Cyc
NOP 1 1
JZ rel 2 2
RET 1 2
JNZ rel 2 2
RETI 1 2
JC rel 2 2
MOV @Ri,A 1 1
MOVX A,@DPTR 1 2
MOV @Ri,direct 2 2
MOVX @Ri,A 1 2
MOV @Ri,#data 2 1
MOVX @DPTR,A 1 2
相关文档
最新文档