IA-32彙編知識

1. 通用寄存器

     EAX   用於操作數和結果數的累加器

     EBX   指向數據內存段中的數據指針

     ECX   計數器

     EDX   IO指針

     EDI     用於字符串操作的目標數據指針

     ESI     用於字符串操作的源數據指針

     ESP    堆棧指針

     EBP    堆棧數據指針

其中EAX, EBX, ECX, EDX可以通過16位和8位寄存器引用(AX, AH, AL)

 

2. 段寄存器

IA-32平臺允許使用3種內存模型: 平坦內存模式,分段內存模式,實地址模式

平坦內存模式: 把全部系統內存表示爲連續的地址空間,通過線性地址訪問內存

分段內存模式: 把系統內存劃分爲獨立的段組,通過位於寄存器中的指針進行引用.每個段用於包含特定的數據.一個段用於存放指令碼,一個段用於包含數據,第三個包含堆棧.

                       段中的內存位置是通過邏輯地址引用的,邏輯地址是由段地址加上偏移量構成,處理器把邏輯地址轉換爲相應的線性地址以便訪問.

段寄存器:

CS   代碼段

DS   數據段

SS   堆棧段

ES, FS, GS   爲附加段,  每個段寄存器都是16位.

 

實地址模式: 所有的段寄存器都指向線性地址0,並且都不會被程序改動, 所有的指令,數據,堆棧都是通過他們的線性地址訪問

 

3.指令指針寄存器EIP, 不能直接修改該寄存器.

 

4.控制寄存器

   CR0   控制操作模式和處理器當前狀態的系統標誌

   CR1   當前沒有使用

   CR2   內存頁面錯誤信息

   CR3   內存頁面目錄信息

   CR4   支持處理器特性和說明處理器特性能力的標誌

控制寄存器不能直接訪問,必須通過通用寄存器來訪問.

 

5.標誌

IA-32使用單一的寄存器來包含一組狀態控制和系統標誌, EFLAGS寄存器包含32爲標誌信息.

*)狀態標誌 

   CF(bit0)    進位標誌,無符號數數學操作產生最高有效位的進位

   PF(bit2)    奇偶校驗標誌,表明數學操作的結果寄存器中是否包含錯誤數據

   AF(bit4)    輔助進位標誌,用於判斷二進制編碼的10進制(BCD)數學操作是否進位

   ZF(bit6)    0標誌,操作結果爲0

   SF(bit7)    符號標誌, 判斷結果的最高有效位

   OF(bit11)  溢出標誌

*)控制標誌

   DF             方向標誌,用於控制處理器字符串指令自動遞增或者遞減內存地址.

*)系統標誌

   TF(bit8)     陷阱標誌,爲1時啓用單步模式,每次只執行一個命令

    IF(bit9)     中斷使能標誌,控制處理器響應外部中斷信號

    IOPL(bit12:13)    IO特權級別標誌,表明當前運行任務的IO特權級別(值越小級別越高)

    NT(bit14)嵌套任務標誌控制當前運行的任務是否連接到前一個任務,用於嵌套中斷

    RF(bit16)  恢復標誌用於控制在調試模式中如何響應異常

    VM(bit17)  虛擬8086模式,表明處理器處在虛擬8086模式,而不是保護模式或者實模式

    AC(bit18)  對準檢查標誌,用於啓用內存引用的對準檢查

    VIF(bit19) 虛擬中斷標誌,當處理器在虛擬模式中操作時,該標誌起IF標誌的作用

    VIP(bit20) 虛擬中斷掛起標誌,在虛擬模式操作時用於表示一箇中斷正在被掛起

     ID(bit21)  表示CPU是否支持cpuid指令,如果處理器能夠設置或者清零這個標誌,表示處理器支持該指令

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章