8086匯編 CPU 寄存結構


8086匯編 CPU 結構

8086 CPU 組成

一、結構說明

8086CPU主要由三塊部分組成、通過內部總線實現CPU內各個器件之間的聯系:

  1. 運算器進行信息處理:處理指令運算使用。
  2. 寄存器進行信息存儲:存儲地址數據使用。
  3. 控制器協調各種器件進行工作:發送讀寫執行使用。

二、寄存器

寄存器是CPU內部的信息存儲單元 CPU通過寄存器存放、內存地址、數據、指令,通過總線訪問主板上任意連接的設備。

8086CPU有14個寄存器:

  1. 通用寄存器:AX、BX、CX、DX
  2. 變址寄存器:SI、DI
  3. 指針寄存器:SP、BP
  4. 指令指針寄存器: IP
  5. 段寄存器:CS、SS、DS、ES
  6. 標志寄存器:PSW

通用寄存器說明:

  • AX:計算乘法除法專用
  • BX:可作為指針寄存器專用、默認指向DS
  • CX:默認循環指針、指針轉移專用
  • DX:配合AX計算乘法除法專用

8086 CPU 存儲方式

一、CPU 存儲

CPU 存儲主要通過寄存器,在8086CPU中寄存器最多可以存儲16位數據,兩個字節。

CPU寄存器存儲單位:

  字:CPU寄存器使用位以字為單位、PC位、如 16位 32位 64位、稱為字、8086CPU的字長(word size)為16bit=2字節。

 字節:1字節 = 8bit 、1bit= 二進制1

二、CPU 兼容

  上面說到8086CPU寄存器存儲單元最多存儲16位數據存儲,那么上一代最多存儲8位數據、那么如今的16位CPU是如何兼容8位CPU的,下面會有說明。

  通用寄存器均可以分為兩個獨立的8位寄存器使用、兩個8位寄存器作為一個16位寄存器使用。

高位低位:

一個字(word)可以存在一個16位寄存器中

  • 這個字的高位字節存在這個寄存器的高8位寄存器
  • 這個字的低位字節存在這個寄存器的低8位寄存器

通用寄存器

  • AX可以分為AH和AL
  • BX可以分為BH和BL
  • CX可以分為CH和CL
  • DX可以分為DH和DL

高低位在內存中存儲:

低位字節存在低地址單元,高位字節存在高地址單元。

例:20000D(4E20H)存放0、1兩個單元,18D(0012H)存放在2、3兩個單元。

注:先讀高位地址1、在讀低位地址0。4E20H。

(1)0地址單元中存放的字節型數據是( 20H  )

(2)0地址字單元中存放的字型數據是( 4E20H )

(3)2地址單元中存放的字節型數據是( 12H  )

(4)2地址字單元中存放的字型數據是( 0012H )

8086CPU 物理尋址

一、CPU 尋址

  • CPU訪問內存單元時要給出內存單元的地址。
  • 所有的內存單元構成的存儲空間是一個一維的線性空間。
  • 每一個內存單元在這個空間中都有唯一的地址,這個唯一的地址稱為物理地址。

問題說明

  上篇博客我們知道了 8086CPU是20位地址總線,可傳送20位地址,尋址能力為1M。但是8086CPU是16位結構的CPU。運算器一次最多可以處理16位的數據,寄存器的最大寬度為16位,在8086內部處理的、傳輸、暫存的地址也是16位,尋址能力也只有64KB,那么8086如何處理在尋址空間缺乏的問題,下面會說明。

解決方法

CPU在訪問內存時,用一個基礎地址(段地址×16)和一個相對於基礎地址的偏移地址相加,給出內存單元的物理地址。

  • 用兩個16位地址(段地址、偏移地址)合成一個20位的物理地址。
  • 地址加法器合成物理地址的方法
  • 物理地址=段地址×16+偏移地址

注:段地址x16就相當於段地址向左偏移4個二進制位

注:相當於16位段地址向左移動4個二進制位、加上偏移地址、值為20位內存地址。

注:通過段地址向左偏移4位后 + 偏移地址 = 物理地址、只要結果成立,可任意調整段地址與偏移地址。

段地址會采用一個寄存器進行存儲16位數據、在通過另一個寄存器存儲偏移地址。

 

 二、CPU 內存分段

8086CPU用“(段地址×16)+偏移地址=物理地址”的方式給出內存單元的物理地址。

實際上內存並沒有分段,段的划分來自於CPU。

可根據、物理地址、段地址、求出偏移地址。

分段方案

  1. 段地址×16 必然是 16的倍數,所以一個段的起始地址也一定是16的倍數;
  2. 偏移地址為16位,16 位地址的尋址能力為 64K,所以一個段的長度最大為64K。
  3. 段地址:分段內存的起始地址到結尾中、取結尾后16個二進制位。
  4. 可根據、物理地址、段地址、求出偏移地址。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM