2012-03-12 115 views
1

數字計算機具有每字32位的存儲單元。指令集 由150個不同的操作組成。所有的指令都有一個操作碼部分 (操作碼),一個寄存器操作數部分(指定10個不同的寄存器之一)和一個存儲器操作數地址部分。每條指令都存儲在一個內存中。 (d)該計算機的指令可以使用(i)兩個內存操作數和(ii)兩個寄存器操作數嗎?如果可以的話,解釋一下;如果不能,解釋爲什麼不。計算機體系結構作業 - 指令操作數

我真的不確定這個問題。我認爲第一部分的答案是,如果指定的寄存器包含一個存儲器地址並且該指令類似於ADD,那麼一條指令將使用兩個存儲器操作數?或者我不理解這個問題? (ii),我覺得答案一定是它可以,但我不確定它是如何完成的,不知道如何搜索答案。 編輯:答案只是一個寄存器操作數可以放在指令的內存操作數部分嗎?

回答

2

從指令編碼開始,它遵循每條指令佔用的32位,8位用於編碼指令/操作,4位用於編碼寄存器,其餘20位用於編碼內存中的地址。

鑑於上述情況,我沒有看到爲什麼不能有ADD,OR,MOV,XCHG等等操作2個存儲器操作數的指令,這些操作數的地址在那20位中並且所選擇的寄存器通過那些其他4位。

同樣,我沒有看到爲什麼寄存器不能駐留在主存儲器中,並且可以通過指令的4位字段或指令的20位字段中的相應地址進行選擇。有許多CPU的寄存器沒有獨立於主存儲器的存儲器,而只是主存儲器的固定位置。

問題,如上所述,允許是兩個問題的答案。

+0

非常感謝。你的解釋非常清楚,我可以推斷出我對它的困惑。 – mavix 2012-03-12 03:14:47