可程式設計標誌暫存器學習總結

2021-04-27 04:41:39 字數 2548 閱讀 9127

1.

可程式設計標誌暫存器在記憶體中的對映如下:

記憶體對映位址

暫存器名稱

0xffc0 0700

fio_flag_d

0xffc0 0704

fio_flag_c

0xffc0 0708

fio_flag_s

0xffc0 070c

fio_flag_t

0xffc0 0710

fio_maska_d

0xffc0 0714

fio_maska_c

0xffc0 0718

fio_maska_s

0xffc0 071c

fio_maska_t

0xffc0 0720

fio_maskb_d

0xffc0 0724

fio_maskb_c

0xffc0 0728

fio_maskb_s

0xffc0 072c

fio_maskb_t

0xffc0 0730

fio_dir

0xffc0 0734

fio_polar

0xffc0 0738

fio_edge

0xffc0 073c

fio_both

0xffc0 0740

fio_inen

在這裡有乙個不明白的地方是:明明所有的暫存器都是

16位的,兩個位元組就可以了,為什麼所有的都佔了四個位元組?難道是用於擴充套件,避免以後出現

32位?

由此可以看出,可程式設計標誌暫存器大致可以分為如下幾組: 組別

暫存器名稱

第一組fio_flag_d

fio_flag_c

fio_flag_s

fio_flag_t

第二組fio_maskx_d

fio_maskx_c

fio_maskx_s

fio_maskx_t

第三組fio_dir

fio_polar

fio_edge

fio_both

fio_inen

那麼這幾組暫存器有何關係,它們又是如何組合工作的呢?

所有的暫存器每一位都對應乙個

pf引腳。

首先我們來介紹下

d,c,s,t

所分別代表的意義:

d: 為資料,當對它進行寫時,指定各個引腳的狀態。當對它進行讀時,返回的是各個引腳的值。

c,s,t

主要用於以下兩種情況:(1

)置位,清除或者觸發每個輸出引腳的狀態。(2

)清除從各個輸入引腳捕獲到的鎖存中斷狀態。

有一點沒有搞清楚的是,好像

fio_maskx_d

,fio_maskx_s

暫存器都能設定使能中斷。

fio_maskx_d

也可以像

fio_maskx_c

一樣清除中斷。

fio_dir1:輸出0

:輸入不過當為輸入的時候,必須使能緩衝,也即

fio_inen

的相應位要置1.

fio_polar

,fio_edge

,fio_both

都是用在輸入的情況下,當為輸出時,沒有任何意義。那麼它們在輸入的時候,到底是用來幹什麼的呢?當為輸入的時候,它們的配置組合是用來解釋從各個引腳讀出來的1和

0到底代表個什麼東西。

fio_polar0

:高電平或上公升沿

1:低電平或下降沿

fio_edge

0:電平敏感

1:邊沿敏感

邊沿敏感和電平敏感的區別:

當被配置為邊沿敏感時,從

d,s,c,t

這些暫存器讀來的值是具有粘性的。也就是說除非通過使用者**進行清除,否則這些值一旦被設定就不會發生改變。而被設定為電平敏感的引腳,在每個時鐘週期都會對引腳的狀態進行檢查,一旦引腳原先的電平發生了變化,讀出來的值也會相應的發生變化。

fio_both

主要是用來使能在兩個邊沿(上公升沿和下降沿)產生中斷,當然前提是

fio_edge

被設定為邊沿敏感,並且當前為輸入。

0:單個邊沿

1:兩個邊沿

現在我們來看一下它們組合起來的效果:

fio_polar

fio_edge

fio_both

mmr設定的效果0

0 x

從這裡可以看出引腳是電平敏感的,

fio_both

無效,所以讀出來的值為

1代表高電平,

0代表低電平0

1 0

單個邊沿週期敏感。上公升沿為

0,下降沿為1

1 0

x 電平敏感。低電平為

1,高電平為

0,剛好和第一項相反1

1 0

下降沿為

1,上公升沿為

0,剛好和第二項相反x

1 1

兩個邊沿敏感,不管是上公升沿還是下降沿都讀為1

標誌暫存器df 標誌暫存器

cpu內部的暫存器中,有一種特殊的暫存器具有以下三種作用。用來儲存相關指令的某些執行結果 用來為cpu執行相關指令提供行為依據 用來控制cpu的相關工作方式 這種特殊的暫存器在8086cpu種,被稱為標誌暫存器 flag 8086cpu的標誌暫存器有16位,其中儲存的資訊通常被稱為程式狀態字 psw...

學習 標誌暫存器

前言 跟著shark恆老師一步一步來學習的,畢竟自己完全是0基礎,就不直接追求原理了,自己能先記錄就好,如果能理解其中的原理那更好 of標誌暫存器 溢位標誌位 為1的時候為溢位,帶符號數的運算結果超出有限字長的表示範圍的標誌 我直接修改當前的eax暫存器的十六進製制為0x7ffffffff,因為這個...

暫存器,標誌暫存器

涉及硬體傳輸資料的,往往包含以下內容 1.資料傳輸引腳 資料放 2.控制引腳 怎麼控制 3.狀態引腳 結果如何 暫存器相當於cpu內部的儲存單元,可能是連續排列,相當於 c語言中的陣列。一 8個通用暫存器 16 bit accumulate axah alr0 count cxch clr1 dat...