對8086CPU中寄存器的理解
阿新 • • 發佈:2017-10-05
匯編 合成 超過 獨立 特性 存儲 cal 8086cpu 兼容性
對於一個匯編程序員來說,CPU中的主要部件是寄存器,寄存器是CPU中程序員可以用指令讀寫的部件。程序員通過改變各種寄存器中的內容來實現對CPU的控制。
8086CPU的部件通常是16位的,為了保證兼容性,8086CPU的AX、BX、CX、DX這四個寄存器都可以分為兩個可以獨立使用的8位寄存器來使用。
比如說一個字形數據20000,分別存儲在了AX寄存器中,AH和AL分別為他的高8位和低8位。
當寄存器中的數據超過4位的時候,更高位的數字就會被省略。比如1044CH,最高位的1不能保存在AX中,因此AX中的數據為044CH。另外,在進行數據傳送或運算的時候,要註意指令的兩個操作對象的位數,應當是一致的。將超過寄存器可以存放的數據存儲到寄存器中的時候也是錯誤的。
CPU具有以下幾個結構特性:
1.運算器一次最多可以處理16位的數據。
2.寄存器的最大寬度為16位。
3.寄存器和運算器之間的通路為16位。
8086CPU采用一種在內部用兩個16位地址合成的方法來形成一個20位的物理地址。一個稱為段地址,另外一個稱謂偏移地址。
地址加法器采用物理地址=段地址*16+偏移地址的方法來合成物理地址。但是內存並沒有分段,段的劃分來自CPU。使得我們可以分段管理內存地址。
CS和IP使8086CPU中最為關鍵的兩個寄存器,CS為代碼段寄存器,IP為指令指針寄存器。
8086CPU的操作過程可以簡單描述成:
1.從CS:IP指向內存單元讀取指令,讀取的指令進入指令緩沖器;
2.IP=IP+所讀取的指令的長度,從而指向下一條指令。
3.執行指令,轉到步驟1,重復這個過程。
最後,如果想要修改CS,IP中的內容可以用jmp指令來操作。
對8086CPU中寄存器的理解