1. 程式人生 > >對8086CPU中寄存器的理解

對8086CPU中寄存器的理解

匯編 合成 超過 獨立 特性 存儲 cal 8086cpu 兼容性

對於一個匯編程序員來說,CPU中的主要部件是寄存器,寄存器是CPU中程序員可以用指令讀寫的部件。程序員通過改變各種寄存器中的內容來實現對CPU的控制。

8086CPU的部件通常是16位的,為了保證兼容性,8086CPUAXBXCXDX這四個寄存器都可以分為兩個可以獨立使用的8位寄存器來使用。

比如說一個字形數據20000,分別存儲在了AX寄存器中,AHAL分別為他的高8位和低8位。

當寄存器中的數據超過4位的時候,更高位的數字就會被省略。比如1044CH,最高位的1不能保存在AX中,因此AX中的數據為044CH。另外,在進行數據傳送或運算的時候,要註意指令的兩個操作對象的位數,應當是一致的。將超過寄存器可以存放的數據存儲到寄存器中的時候也是錯誤的。

CPU具有以下幾個結構特性:

1.運算器一次最多可以處理16位的數據。

2.寄存器的最大寬度為16位。

3.寄存器和運算器之間的通路為16位。

8086CPU采用一種在內部用兩個16位地址合成的方法來形成一個20位的物理地址。一個稱為段地址,另外一個稱謂偏移地址。

地址加法器采用物理地址=段地址*16+偏移地址的方法來合成物理地址。但是內存並沒有分段,段的劃分來自CPU。使得我們可以分段管理內存地址。

CSIP使8086CPU中最為關鍵的兩個寄存器,CS為代碼段寄存器,IP為指令指針寄存器。

8086CPU的操作過程可以簡單描述成:

1.CS:IP指向內存單元讀取指令,讀取的指令進入指令緩沖器;

2.IP=IP+所讀取的指令的長度,從而指向下一條指令。

3.執行指令,轉到步驟1,重復這個過程。

最後,如果想要修改CS,IP中的內容可以用jmp指令來操作。

對8086CPU中寄存器的理解