CPU 通用暫存器是什麼?
通用暫存器是CPU中存在的附加暫存器,根據需要用於儲存記憶體地址或資料。例如,在中斷髮生時儲存當前暫存器內容。
8086 處理器
讓我們考慮一個8086處理器。8086微處理器中有八個通用暫存器,解釋如下:
AX
這是一個16位的累加器,分為兩個8位暫存器AH和AL,以同樣執行8位指令。它通常用於算術和邏輯指令,但在8086晶片中,它不需要作為目標運算元。
示例 − ADD AX, AX (AX= AX+AX)
BX
這是一個16位的基址暫存器,分為兩個8位暫存器BH和BL,以同樣執行8位指令。它儲存偏移量值。
示例 − MOV BL, [500] (BL= 500H)
CX
這是一個16位的計數器暫存器,分為兩個8位暫存器CH和CL,以同樣執行8位指令。它通常用於迴圈和旋轉。
示例
MOV CX,0005
MOV CL,5000
DX
這是一個16位的資料暫存器,分為兩個8位暫存器DH和DL,以同樣執行8位指令。它通常用於輸入/輸出埠地址的乘法。
示例 − Mul BX (DX,AX=AX*BX)
SP
這是一個16位的堆疊指標,指向堆疊的頂部元素。
BP
這是一個16位的基址指標,用於訪問已傳遞到堆疊的引數。
SI
這是一個16位的源索引暫存器,用於資料的指標定址以及字串相關操作的源。
DI
這是一個16位的目標索引暫存器,用於資料的指標定址以及字串相關操作的目標。
如何使用通用暫存器?
CPU的8個通用暫存器能夠儲存32位二進位制數。除了32位資料外,它們還可以儲存16位或8位資料。
當儲存32位資料時,指令表示為:
ER0, ER1, ER2, ER3, ER4, ER5, ER6, ER7
當儲存16位資料時,指令使用暫存器表示為16個單元:
E0, E1, E2, E3, E4, E5, E6, E7, R0, R1, R2, R3, R4, R5, R6, R7
當儲存8位資料時,指令使用暫存器表示為16個單元:
R0H, R0L, R1H, R1L, R2H, R2L, R3H, R3L, R4H, R4L, R5H, R5L, R6H, R6L, R7H, R7L