1.
計算機中寄存器定義,分類
寄存器是
CPU
內部的元件,寄存器擁有很是高的讀寫速度,因此在寄存器之間的數據傳送很是快。
寄存器的用途:
1.
可將寄存器內的數據執行算術及邏輯運算。
2.
存於寄存器內的地址可用來指向內存的某個位置,即尋址。
3.
能夠用來讀寫數據到電腦的周邊設備。
8086
有
8
個
8
位數據寄存器,這些
8
位寄存器可分別組成
16
位寄存器:
AH&AL
=
AX
:累加寄存器,經常使用於運算;
BH&BL
=
BX
:基址寄存器,經常使用於地址索引;
CH&CL
=
CX
:計數寄存器,經常使用於計數;
DH&DL
=
DX
:數據寄存器,經常使用於數據傳遞。
爲了運用全部的內存空間,
8086
設定了四個段寄存器,專門用來保存段地址:
CS
(
Code Segment
):代碼段寄存器;
DS
(
Data Segment
):數據段寄存器;
SS
(
Stack Segment
):堆棧段寄存器;
ES
(
Extra Segment
):附加段寄存器。
當一個程序要執行時,就要決定程序代碼、數據和堆棧各要用到內存的哪些位置,經過設定段寄存器
CS
,
DS
,
SS
來指向這些起始位置。一般是將
DS
固定,而根據須要修改
CS
。因此,程序能夠在可尋址空間小於
64K
的狀況下被寫成任意大小。
因此,程序和其數據組合起來的大小,限制在
DS
所指的
64K
內,這就是
COM
文件不得大於
64K
的緣由。
8086
之內存作爲戰場,用寄存器作爲軍事基地,以加速工做。
除了前面所提的寄存器外,還有一些特殊功能的寄存器:
IP
(
Intruction Pointer
):指令指針寄存器,與
CS
配合使用,可跟蹤程序的執行過程;
SP
(
Stack Pointer
):堆棧指針,與
SS
配合使用,可指向目前的堆棧位置。
BP
(
Base Pointer
):基址指針寄存器,可用做
SS
的一個相對基址位置;
SI
(
Source Index
):源變址寄存器可用來存放相對於
DS
段之源變址指針;
DI
(
Destination Index
):目的變址寄存器,可用來存放相對於
ES
段之目的變址指針。
還有一個標誌寄存器
FR
(
Flag Register
)
,
有九個有意義的標誌
(
OF:
溢出標誌位
OF
用於反映有符號數加減運算所得結果是否溢出。若是運算結果超過當前運算位數所能表示的範圍,則稱爲溢出,
OF
的值被置爲
1
,不然,
OF
的值被清爲
0.
DF:
方向標誌
DF
位用來決定在串操做指令執行時有關指針寄存器發生調整的方向。
IF:
中斷容許標誌
IF
位用來決定
CPU
是否響應
CPU
外部的可屏蔽中斷髮出的中斷請求。但無論該標誌爲什麼值,
CPU
都必須響應
CPU
外部的不可屏蔽中斷所發出的中斷請求,以及
CPU
內部產生的中斷請求。具體規定以下:
(1)
、當
IF=1
時,
CPU
能夠響應
CPU
外部的可屏蔽中斷髮出的中斷請求;
(2)
、當
IF=0
時,
CPU
不響應
CPU
外部的可屏蔽中斷髮出的中斷請求。
TF:
狀態控制標誌位
TF
是用來控制
CPU
操做的,它們要經過專門的指令才能使之發生改變
SF:
符號標誌
SF
用來反映運算結果的符號位,它與運算結果的最高位相同。在微機系統中,有符號數採用補碼錶示法,因此,
SF
也就反映運算結果的正負號。運算結果爲正數時,
SF
的值爲
0
,不然其值爲
1
。
ZF:
零標誌
ZF
用來反映運算結果是否爲
0
。若是運算結果爲
0
,則其值爲
1
,不然其值爲
0
。在判斷運算結果是否爲
0
時,可以使用此標誌位。
AF:
下列狀況下,輔助進位標誌
AF
的值被置爲
1
,不然其值爲
0
:
(1)
、在字操做時,發生低字節向高字節進位或借位時;
(2)
、在字節操做時,發生低
4
位向高
4
位進位或借位時。
PF:
奇偶標誌
PF
用於反映運算結果中
「1」
的個數的奇偶性。若是
「1」
的個數爲偶數,則
PF
的值爲
1
,不然其值爲
0
。
CF:
進位標誌
CF
主要用來反映運算是否產生進位或借位。若是運算結果的最高位產生了一個進位或借位,那麼,其值爲
1
,不然其值爲
0
。
)