第4章 IA 32暫存器

2022-03-09 03:59:24 字數 1620 閱讀 8352

intel x86系列的cpu採用的是小端序,risc系列的cpu採用採用的是大端序

小端序方便計算,大端序方便表示

記住下面的暫存器名字:

eax:(針對運算元和結果資料的)累加器 accumulation,或用在函式返回值中

ebx:(ds段中的資料指標)基址暫存器

ecx:(字串和迴圈操作中的)計數器

edx:(i/o指標)資料暫存器

上面四個暫存器主要用在算術運算中.

ebp:(ss段中棧內資料指標)擴充套件基址指標暫存器 base pointer,棧區域的基位址,用於暫時儲存esp的值,這叫棧幀(stack frame)技術

esi:(字串操作源指標)源變址暫存器 source

edi:(字串目標指標)目的變址暫存器 destination

esp:(ss段中棧指標)棧指標暫存器  stack segment

在ia-32的保護模式中,段是一種記憶體保護技術,段記憶體記錄在sdt(segment descriptor table,段描述符表)中,段暫存器就持有sdt的索引值

段暫存器的名稱如下:

cs:code segment ,**段暫存器,即放應用程式**所在段的段基址

ss:stack segment ,棧段暫存器,放棧段的段基址

ds:data segment ,資料段暫存器,資料段的段基址

es:extra(data) segment ,附加資料段暫存器,附加資料段的段基址

fs,gs:同es

fs暫存器在高階除錯中會使用到,它用於計算seh(structured exception handler)結構化異常處理,teb(thread environment block)執行緒環境塊,peb(process environment block)程序環境塊等位址

eflags,標誌暫存器:

of(over flow)標誌位:有符號整數溢位時或最高有效位msb(most significant bit),即化為二進位制後最高的那一位,改變時都會置為1.

cf(carrier flag):無符號整數溢位時,置為1

eip暫存器:cpu下乙個將要執行的指令,不能直接改變,只能通過其它指令jmp,call等或者中斷or異常來修改eip的值

IA 32位暫存器基礎

eax ax ah al累加器,低十六位可以用作十六位累加器,低十六位還可以分為兩個八位暫存器。ebx ds段的資料指標 基址暫存器。和eax類似。ecx 字串和迴圈操作的 計數器。和eax類似 edx i o指標 資料計數器。和eax類似。add sub xor or指令可以應用於這四個暫存器。用...

彙編速查 IA32暫存器組織

暫存器 描述通用暫存器 8個32位,儲存正在處理的資料 段暫存器 6個16位,處理記憶體訪問 指令指標暫存器 1個32位,指向要執行的下一條指令碼 浮點資料暫存器 8個80位,浮點資料 控制暫存器 5個32位,確定處理器的操作模式 除錯暫存器 8個32位,在除錯處理器時包含資訊 暫存器描述 eax用...

IA32體系結構1(x86暫存器)

intel architecture 32位處理器,主要以80386為參考。包括以下幾類暫存器 1.通用暫存器 2.段暫存器 3.狀態和控制暫存器 4.指令指標暫存器eip 5.記憶體管理暫存器 6.控制暫存器 通用暫存器有8個,分別是eax ebx ecx edx esi edi ebp esp。...