返回首页

单片机编程中双字节为啥要乘以2(单片机单字节指令双字节指令)

来源:www.haichao.net  时间:2022-12-14 20:04   点击:261  编辑:admin   手机版

1. 单片机单字节指令双字节指令

指令的定义

指令是指挥计算机执行操作的命令,一条指令对应着一种操作。

MCS-51指令系统使用44种助记符,它们代表33种功能,可以实现51种操作。指令助记符和操作数的各种可能的寻址方式的结合一共可构造出111条汇编指令。

指令的格式与分类

1. 按指令长度分类

指令可分为单字节指令(49条)、双字节指令(46条)和3字节指令(16条)三大类。

其中,单字节指令只有一个字节(8位),其操作码和操作数同在一个字节中;双字节指令的一个字节为操作码,另一个字节为操作数;3字节指令的操作码占1个字节,操作数占两个字节,其既可能是数据也可能是地址。

2. 按指令执行时间分类

指令可分为1个机器周期指令(64条)、2个机器周期指令(45条)和4个机器周期指令(2条)三大类。只有乘、除两条指令的执行实践为4个机器周期指令。

3. 按指令功能(即操作性质)分类

指令还可分为数据传输指令(29条)、算术操作指令(24条)、逻辑操作指令(24条)、控制转移指令(17条)和位操作指令(也称布尔处理指令,17条)五大类。

2. 单片机的单字节、双字节、三字节指令各多少条?

CBYTE用来访问rom,用到movc指令。XBYTE用来访问扩展ram的,使用movx指令,dptr当指针。

DBYTE用来绝对访问片内ram中的数据的。

PBYTE也用来访问扩展ram,但只能访问开始的256字节,即movx指令,R0或R1当指针。这几个宏用于51单片机的绝对地址访问。上面4个是单字节访问,对应双字节访问用下面4个。CWORD、XWORD、DWORD、PWORD这些定义在头文件<absacc.h>中,所以使用时要加入下面语句:

#include<absacc.h>

3. 单片机一条指令几个字节

单片机的工作过程实质就是执行程序的过程,储存的原理就是数据的映射和译码和指令。

也就是我们常说的逐条执行指令的过程。单片机每执行一条指令均可分为三个阶段:取出指令、分析(译码)指令、执行指令。

大多数8位单片机的取指、译码、执行这三步都是按照串行顺序依次进行的。32位单片机的这三步也是必不可少的,但是它是采用预取指令的流水线方式操作,并采用精简指令集,每条指令都是单周期指令,所以它允许指令并行操作。

例如再取出第一条指令后,开始对这条指令译码的同时,取出第二条指令;在第一条指令执行时,第二条指令开始译码,然后取出第三条指令,第二条指令同时执行。。。如此循环。从而使CPU在同一时间对不同指令实现不同操作,这样就实现了指令的并行处理,大大加快指令的执行速度。

4. 51单片机双字节指令

MCS—51时序中最小的时间单位是 机器周期。

时序是用定时单位来描述的,MCS-51的时序单位有四个,它们分别是节拍、状态、机器周期和指令周期,接下来我们分别加以说明。·节拍与状态:我们把振荡脉冲的周期定义为节拍(为方便描述,用P表示),振荡脉冲经过二分频后即得到整个单片机工作系统的时钟信号,把时钟信号的周期定义为状态(用S表示),这样一个状态就有两个节拍,前半周期相应的节拍我们定义为1(P),后半周期对应的节拍定义为2(P)。

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

  ·指令周期:执行一条指令所需要的时间称为指令周期,MCS-51的指令有单字节、双字节和三字节的,所以它们的指令周期不尽相同,也就是说它们所需的机器周期不相同,可能包括一到四个不等的机器周期。

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

  执行这些指令需要的时间是不同的,也就是它们所需的机器周期是不同的,有下面几种形式:·单字节指令单机器周期·单字节指令双机器周期·双字节指令单机器周期·双字节指令双机器周期·三字节指令双机器周期·单字节指令四机器周期(如单字节的乘除法指令)。

5. 单片机字符

这个是 unsigned char temp=0; 这个是无符号字符型变量 temp=0

#define uchar unsigned char 应该上面有这一句的 这是宏定义 将unsigned char 写为uchar

在后面的程序中就不需要加unsigned char了

6. 单片机指令字节数表

字节交换指令主要对两个字节的内容进行交换。交换的过程中会使用到一个中间变量,先将其中一个变量的值放到中间没人啊,然后另一个变量的值放入原变量当中。然后再取出中间值,使用完成之后,中间只会被释放。

7. 单片机字节操作指令

ADD指令可用于完成把src-byte所示的源操作数和累加器A的当前值相加。并将结果置于累加器A中。

根据运算结果,若第7位有进位则置进位标志为1,否则清零;若第3位有进位则置辅助进位标志为1,否则清零。如果是无符号整数相加则进位置位,显示当前运算结果发生溢出。

8. 51单片机单字节指令

ACC在汇编后的机器码必有一个字节的操作数,即累加器的字节地址E0H,A在汇编后则隐含在指令操作码中。所以在指令中A不能用ACC来替代,而对A的特殊功能寄存器直接寻址和累加器某一位的寻址要用ACC,而不能写成A。

A表示了累加器中的内容【寄存器寻址】;ACC表示了累加器的地址【直接寻址】。

9. 双字节指令和单字节指令

字节是计算机信息技术用于计量存储容量的一种计量单位,也表示一些计算机编程语言中的数据类型和语言字符。作为一个单位来处理的一个二进制数字串,是构成信息的一个小单位。最常用的字节是八位的字节,即它包含八位的二进制数。

一个字节存储8位无符号数,储存的数值范围为0-255。如同字元一样,字节型态的变数只需要用一个位元组(8位元)的内存空间储存。

字节是二进制数据的单位。一个字节通常8位长。但是,一些老型号计算机结构使用不同的长度。为了避免混乱,在大多数国际文献中,使用词代替byte。

在多数的计算机系统中,一个字节是一个8位长的数据单位,大多数的计算机用一个字节表示一个字符、数字或其他字符。一个字节也可以表示一系列二进制位。在一些计算机系统中,4个字节代表一个字,这是计算机在执行指令时能够有效处理数据的单位。

一些语言描述需要2个字节表示一个字符,这叫做双字节字符集。一些处理器能够处理双字节或单字节指令。字节通常简写为“B”,而位通常简写为小写“b”,计算机存储器的大小通常用字节来表示。

10. 单字节和双字节指令

字节也叫Byte,是计算机数据的基本存储单位。

8bit(位)=1Byte(字节)

1024Byte(字节)=1KB

1024KB=1MB

1024MB=1GB

1024GB=1TB

其中:K是千 M是兆 G是吉咖 T是太拉。

在电脑里一个中文字是占两个字节的。

字节是二进制数据的单位。一个字节通常8位长。但是,一些老型号计算机结构使用不同的长度。为了避免混乱,在大多数国际文献中,使用词代替byte。

在多数的计算机系统中,一个字节是一个8位长的数据单位,大多数的计算机用一个字节表示一个字符、数字或其他字符。一个字节也可以表示一系列二进制位。在一些计算机系统中,4个字节代表一个字,这是计算机在执行指令时能够有效处理数据的单位。

一些语言描述需要2个字节表示一个字符,这叫做双字节字符集。一些处理器能够处理双字节或单字节指令。字节通常简写为“B”,而位通常简写为小写“b”,计算机存储器的大小通常用字节来表示。

多字节字段中的值是按照大末尾(big- endian)顺序规定的,具体来说就是最高位的字节出现在高位,而低位的字节出现在低位。

顶一下
(0)
0%
踩一下
(0)
0%