CPU包含運算器、寄存器 一、數據寄存器: AX用於算術、邏輯運算、外設傳送信息 BX用於存放存儲器地址 CX用於移位指令、迴圈和串處理指令中用作隱含的計數器 DX用於存放雙字的高十六位 其中AX、CX、DX不能作為基址和變址儲存器來存儲定址 二、變址寄存器 ESI、EDI、SI、DI稱為變址寄存器 ...
CPU包含運算器、寄存器
一、數據寄存器:
AX用於算術、邏輯運算、外設傳送信息
BX用於存放存儲器地址
CX用於移位指令、迴圈和串處理指令中用作隱含的計數器
DX用於存放雙字的高十六位
其中AX、CX、DX不能作為基址和變址儲存器來存儲定址
二、變址寄存器
ESI、EDI、SI、DI稱為變址寄存器,主要用於存放某個存儲單元的偏移地址
SI是源變數、DI是目的變址寄存器
三、指針寄存器
EBP、ESP、BP、SP主要用於存儲堆棧內儲存單元的偏移量
SP為堆棧指針寄存器,用於存放當前堆棧段中棧頂的偏移地址
BP為基址針寄存器,用於存放堆棧段中某一存儲單元的偏移地址
四、專用寄存器IP、SP、FLAGS
IP為指令指針,用於保存下一次將要從主存中取出指令的偏移地址
SP為堆棧指針寄存器,與堆棧段指針SS聯用確定堆棧段中棧頂的地址SP用於存放棧頂的偏移地址
FLAGS
OF溢出標誌
SF符號標誌
ZF零標誌
CF進位標誌
AF輔助進位標誌
PF奇偶標誌
DF方向標誌
TF陷阱標誌
IF中斷標誌
應用舉例:
ZF零標誌:
若運算結果為0,則ZF為1
例如3AH+7CH=B6H≠0,則ZF=0
SF符號標誌
運算結果最高位為1,則SF=1
例如3AH+7CH=B6H最高位D7為1,則SF=1
PF奇偶標誌
算術運算結果最低位元組中1的個數為0或者偶數,PF=1
例如3AH+7CH=B6H=10110110B,有5個1,則PF=0
OF溢出標誌
算數結果有溢出,OF=1
例如3AH+7CH=B6H=10110110B產生溢出,則OF=1
AAH+7CH=26H,沒有溢出,則OF=0
AF輔助進位標誌
運算時D3低位元組有進位或者借位,AF=1
例如3AH+7CCH=B6H=10110110B,D3有進位,AF=1
DF方向標誌
控制地址的變化方向,DF=0,串操作的存儲器地址自動增加
CLD指令複位方向標誌:DF=0
STD指令複位方向標誌:DF=1
IF中斷允許標誌
IF=1允許中斷
IF=0不允許中斷
CLI指令複位中斷標誌:IF=0
STI指令複位中斷標誌:IF=1
TF陷阱標誌
TF=0處理器正常工作
TF=1處理器單步執行指令
單步執行指令:處理器在每條指令執行結束時,產生一個編號為1的內部中斷
五、段寄存器
代碼段寄存器CS
數據段寄存器DS
堆棧段寄存器SS
附加數據段寄存器ES
段寄存器用來確定該段寄存器在記憶體中的起始地址
一個位元組的內容是該位元組單元記憶體放的二進位信息;位元組0004H包含的內容是:78H
一個字的內容是該字地址所指向的單元及其後繼一個單元的內容組成;字0004H包含的內容是:5678H
一個雙字的內容是該字地址所指向的單元及其後繼三個單元的內容組成。雙字0004H包含的內容是:12345678H
六、存儲器定址
物理地址PA=段地址×16d + 偏移量