怎么判断是几字节指令 计算机是如何知道取出来的一条指令的操作码有多少位?
计算机是如何知道取出来的一条指令的操作码有多少位?
当计算机读取指令时,它不需要知道操作代码有多少位。
这就像读一本书,却不知道它事先有多少页数和字数。
它有固定的读取格式,如8位、16位、32位、64位格式。
早期的计算机是从四位开始的。
例如,如果一条指令是39位的,那么4位计算机可以读取91次。
九次已满(4x9=36),加上一次(3次多于1次)。
现在家庭电脑已升级到64位,只需读取一次(超过39 25位)。
如果您想知道一条指令中有多少位,只需查看其完整的数字平衡或完整的加号平衡即可。
某计算机指令字长16位,地址码6位,指令有一地址和二地址两种格式,求一地址多少条?
双地址指令的结构是(4位OP)、(6位A1)、(6位A2)。指令结构为(10位操作码OP),(6位地址码a)。如果所有两条地址指令(一条地址指令为0),则总共有16条两地址指令。对于每一条少两个地址的指令,有2^6条多一个地址的指令,因此一条指令的最大数目是(16-n)*2^6。
某机的三条地址指令的长度为16位,最多多少条三地址指令?最多多少条一地址指令?
回答15 2047 31
当指令长度为16时,0000 xxx xxx---1110 xxx xxx xxx中最多可以有15条三地址指令。
1111 xxx xxx是扩展端口
0000 xxx---1111 1111 1110 xxx中最多可以有2e12-1条指令,即2047条单地址指令。
1111 1111 1111 XXXX是扩展端口
三个地址是14,即0000---1101,其余的1110和1111是扩展端口。一条地址指令是15,即11101111是零地址指令的扩展端口,零地址指令是16。1111已满,没有扩展空间。所以两条地址指令可以有1110 0000---1110 1111和1111 0000---1111 1110,共16条15=31条指令,1111 1111 xxxxx是扩展端口。
为什么好多软件都区分32位和64位,到底有什么区别?
在回答这个问题之前,有必要普及CPU的相关知识。很多人经常谈论16位、32位和64位的速度,但概念非常模糊。让我们澄清一下。
1. 一台计算机有多少位?这是什么意思?
一般来说,计算机是8/16/32/64位,是指数据位,而不是地址位。大多数人把它理解为地址位,比如32位,然后马上说地址空间是4GB。这不严重。根据这个理论,16位计算机只有2^16=64K的寻址空间吗?事实上,即使是最早的16位计算机也有20条地址线,地址为1MB。
2. CPU和数据位之间的关系是什么?
一般来说,处理器的位数是指通用寄存器的长度,与数据线的位数相同。
同样,地址行不必等于它。
例如,Intel 64位处理器是40位地址总线,最多支持1TB内存寻址。
32位宏程序集,32位CPU有四个32位通用寄存器eax、ebx、ECX和EDX。因此,32和64表示CPU一次可以读/写的最大位数。在主频等外部条件相同的情况下,理论上64位的执行速度是32位的两倍。
3. 寻址能力决定了可以支持的最大内存。一个32位CPU只能寻址最多4GB的内存,因为它的地址线正好是32位。一些制造商生产40位地址线,可支持1TB内存。
4. 操作系统向下兼容。也就是说,64 CPU可以安装32位操作系统win10 for 32。当然,对于CPU来说,这是一种浪费,一半的性能还没有发挥出来。
5. 所有应用程序都是在win10上为64位开发的吗?不,它也与ide直接相关。现在大多数应用程序是32位的,64位的应用程序很少。原因是软件开发的滞后。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。