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