2011-05-04 46 views

回答

5

總線接口單元包括段寄存器,加法器,以產生20位的地址和指令預取隊列。一旦該地址從BIU發出,指令和數據字節就從存儲器中取出,並填充先入先出6字節隊列。

查看名爲「8086_Internal_Block_diagram_enotes.pdf」的文檔,很容易通過Google找到。另請參閱this document,關於總線接口單元的部分。

因此,如果您願意的話,處理器會根據需要使用專用的內部20位寄存器生成這些20位地址。

+1

我明白了,謝謝!所以本質上地址計算不使用傳統的16位ALU(?) – Oxdeadbeef 2011-05-04 08:19:28

+1

@ 0xdeadbeef:正確,它在BIU中有它自己的專用「迷你ALU」。 – DarkDust 2011-05-04 08:31:00

1

當你將一個16位的數字4位移到左邊時,你基本上創建了一個20位的數字。偏移量表示你將走多遠。請參閱Wikipedia article on Real mode addressing

實施例:

0x0001 << 4 -> 0x00010 (5 sets of 4 bits in each hex digit -> 20 bits) 
+0

我想這個問題更多的是:因爲所有的寄存器都是16位的,處理器如何處理一個20位的值,這對於一個正常的寄存器來說太大了。 – DarkDust 2011-05-04 08:10:30

+0

@DarkDust是的,我也是這樣解釋它的。你的問題比較完整,我只是試圖直接解決問題。 – jonsca 2011-05-04 08:12:05

+0

@ DarkDust,jonsca,正好:) – Oxdeadbeef 2011-05-04 08:20:05