為什麼早期x86處理器暫存器很少?

2021-10-09 19:14:24 字數 640 閱讀 6391

8086是一款16位的微處理器,比它更早的是8080。它有6個8位暫存器,分別命名為:a, b, c, d, e, h和l。通過兩兩組合,我們可以用它們產生16位的虛擬暫存器,例如:bc, de和hl。

另外,你甚至可以將乙個16位的位址放入hl暫存器,並用另外乙個虛擬暫存器」m」來解引用它。

所以,舉個例子,你可以這樣寫」mov b, m」,表示:將hl暫存器指向的8位數值載入到b暫存器中。

8086處理器沿用了8080處理器的暫存器設計,並使用了如下的方式對它們進行了對映:

> a => al

> h => bh, l => bl; hl => bx; m => [bx]

> b => ch, c => cl; bc => cx

> d => dh, e => dl; de => dx

這就是為什麼8086指令集只能通過[bx]而不是[cx]或[dx]來進行解引用操作,以實現將舊的8位**遷移到新的16位處理器。甚至連ms-dos作業系統呼叫也以這種類似的方式進行設計,已實現**的機器級別轉換。

我猜想,它們的引入可能來自z-80上ix和iy暫存器的靈感。z-80是8080處理器的競品,它使用了8080的指令集並使用更多的暫存器對指令集進行了擴充套件。z-80處理器上,可以通過[ix]和[iy]來解引用,同樣的在8086上

X86處理器架構

包含有暫存器 算術邏輯單元 控制單元 時鐘位址 資料 控制匯流排1 將想要讀讀取的值的位址放在位址匯流排上。2 設定處理器rd 讀取 引腳 改變rd的值 3 等待乙個時鐘週期給儲存器晶元進行響應。4 將資料從資料匯流排複製到目標運算元。1 cpu從被稱為指令佇列的記憶體區域取得指令,之後立即增加指令...

80x86處理器的標誌暫存器

eflags 存放cpu的兩類標誌。狀態標誌 反映處理器當前的狀態,如有無溢位,有無進製等。控制標誌 用來控制處理器的工作方式,如是否響應可遮蔽中斷等。各狀態標識的含義如下。1 of 溢位標誌。of 1表示兩個有符號數的運算結果超出了可以表示的範圍,結果是錯誤的 of 0表示沒有溢位,結果正確。進行...

《ubuntu下x86彙編》之x86處理器

一 處理器基本資訊 cat proc cpuinfo processor 0 vendor id genuineintel cpu family 6 model 23 model name pentium r dual core cpu e5500 2.80ghz processor 1 vendo...