2016-12-30 115 views
0

PC內存模塊包含512k字。 Word有64位。二進制指令有四個段:間接位,操作碼,寄存器代碼部分,用於確定32個寄存器和地址部分之一。指令二進制代碼存儲在字存儲器中。這個操作碼有多少位?

  1. 操作碼,寄存器代碼和地址段需要多少位?

間接:1個比特

寄存器:5(2^5 = 32)

地址:19(2^19 = 512K)

操作碼= 64 - 5 - 19 = 40位

我想我的回答是正確的,但實際上操作碼不能有40位。 (這是萬億的指令)。 40是否正確?

回答

0

你的答案是正確的,但你忘了減去間接位,共64 - 5 - 19 - 1 = 39

並非所有的39位需要操作碼的一部分。
一般來說,操作碼字段的位是根據操作碼的數量來計算的,這些操作碼字段還沒有被給出。

這39位可以被使用或保留以供將來使用。例如,可以使用3位來指定每個字中的字節(從而擴展地址位)。
另外19位可以用來指定第二個地址等等。

+0

非常感謝您,我無法提出您的答案,因爲我沒有足夠的聲譽。我可以澄清一些小問題。它實際上意味着什麼「PC內存模塊包含512k字,Word有64位」?據我所知,具有64位的字意味着該字是8字節(64/8)。總內存大小是4MB? (512k * 8byte words)?再次感謝。 – Trang

+0

@Trang,不客氣。是。內存是用字來表達的,最着名的架構使用8位字,所以有時候人們會對字和字節感到困惑。前幾天我回答了[關於內存大小的問題](https://stackoverflow.com/questions/41219266/32bit-cpu-how-much-memory-can-it-use/41222836#41222836),可能可以幫助你。 –

+0

你好,還有一個問題。這些句子的意思是一樣的嗎? 「Word有64位」與「Word是64位」。我假設「Word有64位」意思是字大小是「8字節」,「字是64位」是指該字可以保持2^64的值?原因是,當我看到n位長的時候,我們經常計算2^n。 Argghh! – Trang