Intel 8086微處理器暫存器結構
8086微處理器中包含4個通用暫存器、4個指標和變址暫存器、4個段暫存器、1個標誌暫存器和1個指令指標。
1、通用暫存器
通用暫存器組包括4個16位的暫存器AX、BX、CX、DX。它們即可以作為16為暫存器使用,也可以分為兩個8位暫存器使用,即高8位暫存器AH、BH、CH、DH和低8位暫存器AL、BL、CL、DL。這些資料暫存器既可以作為算術、邏輯運算的源運算元,向ALU提供參與運算的原始資料,也可以作為目標運算元,儲存運算的中間結果或最後結果。在有些指令中,這些暫存器具有特定的用途:
AX:累加器
BX:基址暫存器
CX:計數暫存器
DX:資料暫存器
2、指標及變址暫存器
指標及變址暫存器包括兩個指標暫存器SP(stack pointer)、BP(base pointer)和兩個變址暫存器SI(sourse index)、DI(destination index)。這組暫存器通常用來存放儲存器單元的16位偏移地址(即相對於段起始地址的距離,簡稱偏移地址)。
1)指令指標:在8086微處理器記憶體中有一個按照“先進後出”原則進行資料操作的區域,稱為堆疊。CPU對堆疊的操作有兩種,壓入(PUSH)操作和彈出(POP)操作。在進行堆疊操作的過程中,SP用來指示堆疊棧頂的偏移地址,稱為堆疊指標;而BP則用來存放位於堆疊段中的一個資料區的“基址”的偏移量,稱為基址指標。
2)變址暫存器:SI、DI稱為變址暫存器,它們用來存放當前資料所在儲存單元的偏移地址。在串操作指令中,SI用來存放源運算元地址的偏移量,稱為源變址暫存器;DI用來存放目標運算元地址的偏移量,稱為目的變址暫存器。
3、段暫存器(segment registers)
在8086微處理器中有4個16位的段暫存器,這些暫存器指明瞭一個特定的現行段,用來存放各段的段基址,當使用者指令設定了它們的初始值後,實際上已經確定了一個64KB的儲存區段
程式碼段暫存器 CS(code segment):用來存放當前使用的程式碼段的段基址,使用者編制的程式必須存放在程式碼段中,CPU將會依次從程式碼段取出指令程式碼並執行
資料段暫存器 DS(data segment):用來存放當前使用的資料段的段基址,程式執行所需要的原始資料以及運算的結果應存放在資料段中
附加段暫存器 ES(extra segment):用來存放當前使用的附加段的段基址,它通常也用來存放資料,在執行資料串操作指令時,用來存放目標資料串(此時DS用來存放源資料串)
堆疊段暫存器 SS(stack segment):用來存放當前使用的堆疊段的段基址,所有堆疊操作的資料均儲存在這個段中
4、指令指標
指令指標IP為16位暫存器,IP的內容總是指向BIU(匯流排介面部件)將要取的下一條指令程式碼的16位偏移地址,當取出1位元組指令程式碼後,IP自動加1並指向下一條指令程式碼的偏移地址。它的內容是由BIU來修改的,使用者不能通過指令預置或修改IP的內容,但有些指令的執行可以修改它的內容,也可以將其內容壓入堆疊或由堆疊中彈出。
5、標誌暫存器
8086微處理器中有一個16位的標誌暫存器(FR),但只使用了9位。其中6位為狀態標誌位,用來反映算術運算或邏輯運算結果的狀態;3位為控制位,用來控制CPU的操作
1)狀態標誌位
CF(carry flag):進位標誌。表示本次加法或減法運算中最高位(或)產生進位或借位的情況。CF=1表示有進位,CF=0表示無進位(減法運算時表示借位的情況)
PF(parity flag):奇偶校驗位。表示本次運算結果低8位中包含1的個數。PF=1表示有偶數個1,PF=0表示有奇數個1
AF(auxiliary carry flag):輔助進位標誌。表示參加加法或減法運算中位向位產生進位或借位的情況。AF=1表示有進位,AF=0表示無進位(減法時表示借位情況)
ZF(zero flag):零標誌。表示當前的運算結果是否為0。ZF=1表示運算結果為0,ZF=0表示運算結果不為0
SF(sign flag):符號標誌。表示運算結果的正、負情況。SF=1表示運算結果為負,SF=0表示運算結果為正
OF(overflow flag):溢位標誌。表示運算結果中產生溢位的情況。OF=1表示當前正在進行的補碼運算有溢位,OF=0表示無溢位。
2)控制標誌位
DF(direction flag):方向標誌。用來設定和控制字串操作指令的步進方向。DF=1時,串操作過程中地址會自動遞減1,DF=0時,地址自動遞增1
IF(interrupt enable flag):中斷允許標誌。用來控制可遮蔽中斷的標誌位。IF=1時,開中斷,CPU可以接受可遮蔽中斷的請求,IF=0時,CPU不能接受可遮蔽中斷請求。
TF(trap flag):單步標誌。用來控制CPU進入單步方式。TF=1時,CPU處於單步工作方式,每執行一條指令就自動產生一次內部中斷,TF=0時,CPU不能以單步方式工作。
相關文章
- 微處理器效能簡介(8086)
- 讀書筆記《組合語言》——intel8086暫存器的記憶體訪問筆記組合語言Intel記憶體
- Intel酷睿i7-8086K什麼時候上市?紀念英特爾8086處理器而生Intel
- 儲存器、I/O組織、微處理器
- CS 暫存器 和 IP 暫存器
- 函式呼叫暫存器及棧幀結構函式
- 暫存器
- 計算機處理器結構計算機
- 暫存器,觸發器,三極體小結觸發器
- PC暫存器
- 計算機原理與介面技術-第三章8086微處理器計算機
- 第二章 處理器結構
- 暫存器定址和暫存器間接定址的區別
- STM32暫存器操作、模板構建
- amd處理器和intel處理器哪個好(amd和英特爾哪個好)Intel
- 自學C day03-CPU內部結構和暫存器
- 為什麼Modbus的只讀暫存器被稱為“輸入暫存器(Input Registers)”而不是“輸出暫存器”
- LoongArch@微處理器體系結構專利技術研究方法@20241002
- CPU處理器架構架構
- Intel與AMD的CPU處理器到底哪個好?Intel
- 英特爾intel和AMD處理器CPU哪個好?Intel
- 英特爾處理器“內購”功能定名為 Intel On DemandIntel
- 【STM32】【暫存器】暫存器位讀寫方式配置系統時鐘
- CS、IP和PC暫存器
- 《奔跑吧 Linux核心》之處理器體系結構Linux
- 處理器架構和配置架構
- KVM虛擬機器處於暫停狀態怎麼處理虛擬機
- 新手分享_再談FS暫存器
- CPU 中通用暫存器的作用
- 更新計算機處理器微碼計算機
- MIPS 架構流水線處理器架構
- 儲存器的層次結構
- 微軟更新Win10 19H1版:Intel處理器打補丁無損效能微軟Win10Intel
- iOS彙編基礎(二)暫存器iOS
- 6.常見暫存器和指令
- 10.1 除錯事件讀取暫存器除錯事件
- 程式設計中暫存器的使用程式設計
- STM32 GPIO 暫存器的配置