怎么判斷是幾字節(jié)指令 計算機是如何知道取出來的一條指令的操作碼有多少位?
計算機是如何知道取出來的一條指令的操作碼有多少位?當計算機讀取指令時,它不需要知道操作代碼有多少位。這就像讀一本書,卻不知道它事先有多少頁數(shù)和字數(shù)。它有固定的讀取格式,如8位、16位、32位、64位格
計算機是如何知道取出來的一條指令的操作碼有多少位?
當計算機讀取指令時,它不需要知道操作代碼有多少位。
這就像讀一本書,卻不知道它事先有多少頁數(shù)和字數(shù)。
它有固定的讀取格式,如8位、16位、32位、64位格式。
早期的計算機是從四位開始的。
例如,如果一條指令是39位的,那么4位計算機可以讀取91次。
九次已滿(4x9=36),加上一次(3次多于1次)。
現(xiàn)在家庭電腦已升級到64位,只需讀取一次(超過39 25位)。
如果您想知道一條指令中有多少位,只需查看其完整的數(shù)字平衡或完整的加號平衡即可。
某計算機指令字長16位,地址碼6位,指令有一地址和二地址兩種格式,求一地址多少條?
雙地址指令的結(jié)構(gòu)是(4位OP)、(6位A1)、(6位A2)。指令結(jié)構(gòu)為(10位操作碼OP),(6位地址碼a)。如果所有兩條地址指令(一條地址指令為0),則總共有16條兩地址指令。對于每一條少兩個地址的指令,有2^6條多一個地址的指令,因此一條指令的最大數(shù)目是(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是擴展端口。
為什么好多軟件都區(qū)分32位和64位,到底有什么區(qū)別?
在回答這個問題之前,有必要普及CPU的相關知識。很多人經(jīng)常談論16位、32位和64位的速度,但概念非常模糊。讓我們澄清一下。
1. 一臺計算機有多少位?這是什么意思?
一般來說,計算機是8/16/32/64位,是指數(shù)據(jù)位,而不是地址位。大多數(shù)人把它理解為地址位,比如32位,然后馬上說地址空間是4GB。這不嚴重。根據(jù)這個理論,16位計算機只有2^16=64K的尋址空間嗎?事實上,即使是最早的16位計算機也有20條地址線,地址為1MB。
2. CPU和數(shù)據(jù)位之間的關系是什么?
一般來說,處理器的位數(shù)是指通用寄存器的長度,與數(shù)據(jù)線的位數(shù)相同。
同樣,地址行不必等于它。
例如,Intel 64位處理器是40位地址總線,最多支持1TB內(nèi)存尋址。
32位宏程序集,32位CPU有四個32位通用寄存器eax、ebx、ECX和EDX。因此,32和64表示CPU一次可以讀/寫的最大位數(shù)。在主頻等外部條件相同的情況下,理論上64位的執(zhí)行速度是32位的兩倍。
3. 尋址能力決定了可以支持的最大內(nèi)存。一個32位CPU只能尋址最多4GB的內(nèi)存,因為它的地址線正好是32位。一些制造商生產(chǎn)40位地址線,可支持1TB內(nèi)存。
4. 操作系統(tǒng)向下兼容。也就是說,64 CPU可以安裝32位操作系統(tǒng)win10 for 32。當然,對于CPU來說,這是一種浪費,一半的性能還沒有發(fā)揮出來。
5. 所有應用程序都是在win10上為64位開發(fā)的嗎?不,它也與ide直接相關?,F(xiàn)在大多數(shù)應用程序是32位的,64位的應用程序很少。原因是軟件開發(fā)的滯后。