各類寄存器總結

寄存器在彙編和反彙編中都是必需品,我把各類寄存器及其作用總結了一下,希望大家多多交流大笑


4個數據寄存器(EAXEBXECXEDX) 

2個變址和指針寄存器(ESIEDI) 2個指針寄存器(ESPEBP) 

6個段寄存器(ESCSSSDSFSGS)

1個指令指針寄存器(EIP) 1個標誌寄存器(EFlags)

EBP :(Extended Base Pointer)基址指針寄存器,存放棧底指針

ESP :(Extended Stack Pointer)棧指針寄存器,存放棧頂指針

EAX :(Extended Accumulate )累加寄存器,用做加減乘除運算

EBX :(Extended Base)基址寄存器,可以用來存儲指針

ECX :(Extended Count)計數寄存器,用在循環中控制循環的次數

EDX :(Extended Data)數據寄存器,在進行乘、除運算時,它可作爲默認的操作數參與運算,通常用來保存餘數。也 可用於存放I/O的端口地址

ESI:(Extended Source Index)源索引寄存器,可以存放任何數據,但是習慣把它存放指針。

EDI:(Extended Destination Index)目的索引寄存器,但是ESIEDI雖然他倆經常配合,但是之間的區別還是比較大的。在字符串處理指令中,ESIDS結合,DSESI構成全指針,在穿處理指令方面,ESI負責只讀,EDI負責只寫。關於爲啥只能ESIDS結合形參全指針,這是硬件構造決定的,沒有選擇性。ESEDI,同樣構成全指針。


EIP:(Extended Instruction Pointer)指令指針寄存器,要存放下一條執行指令的地址

EFL:(Extended Flag)標誌寄存器,用來運算結果標誌(進位,溢出等),狀態控制標誌(跟蹤,中斷允許等)。

CS——代碼段寄存器(Code Segment Register),其值爲代碼段的段值;

DS——數據段寄存器(Data Segment Register),其值爲數據段的段值;

ES——附加段寄存器(Extra Segment Register),其值爲附加數據段的段值;

SS——堆棧段寄存器(Stack Segment Register),其值爲堆棧段的段值;

FS——附加段寄存器(Extra Segment Register),其值爲附加數據段的段值;

GS——附加段寄存器(Extra Segment Register),其值爲附加數據段的段值。

發佈了37 篇原創文章 · 獲贊 127 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章