esp暫存器與ebp暫存器介紹

2021-06-18 10:49:31 字數 892 閱讀 4319

esp(extended stack pointer)是指標暫存器的一種(另一種為ebp)。用於堆疊指標。

esp為棧指標,用於指向棧的棧頂(下乙個壓入棧的活動記錄的頂部),而ebp為幀指標,指向當前活動記錄的頂部。

棧指標與幀指標標識出了當前活動記錄的位置。

當函式被呼叫的時候,執行如下操作:

⒈將幀指標壓入棧中:push ebp

⒉用ebp儲存當前棧指標:mov ebp,esp

⒊使得棧指標自減,自減得到的記憶體應當能夠被用來儲存被呼叫函式的本地狀態:sub 0cch,esp

ebp

擴充套件 基址

指標暫存器

(extended base pointer)  其內存放乙個指標,該指標指向系統棧最上面乙個

棧幀的底部。

每個任務(程序)有乙個棧,在這個程序中每個函式被呼叫時分別從這個棧占用一段區域,稱為幀(frame)。%esp暫存器指向當前整個棧的棧頂,% ebp指向當前幀的幀底。上一級呼叫者的幀底被壓入當前%ebp內容所指的位址,也就是當前幀的幀底位置儲存了上一級呼叫者的%ebp指標值(幀底),而每個%ebp的前乙個單元存放的就是當前函式的返回位址(它是由呼叫者在call指令中入的棧),保證是在上以及幀的最後乙個空間單元。這樣就可以 根據當前%ebp的值回溯出整個任務的呼叫棧(呼叫過程)。    

注:函式棧幀的大小並不固定,一般與其對應函式的區域性變數多少有關。函式執行過程中,其棧幀大小也是 在不停變化的。  除了與棧相關的暫存器外,我們還需要記住另乙個至關重要的暫存器。  eip:指令暫存器(extended instruction pointer),其內存放著乙個指標,該指標永遠指向下一條等待  執行的指令位址。  可以說如果控制了eip暫存器的內容,就控制了程序——我們讓eip指向**,cpu就會去執行**的指令。

詳細解析ESP暫存器與EBP暫存器

詳細解析esp 暫存器與 ebp暫存器 最近在看彙編碼,經常在程式的開頭看到 esp和 ebp暫存器的出現 由於本人基礎知識的不牢靠 便上網查閱相關的資料 可惜網上的資料都不給力 都只是流於形式 沒有好好的解釋這兩個東西是什麼 終於通過 google 國外的 得到乙個相當不錯的網頁 上面解釋的很清晰...

暫存器(通用暫存器)

因為學習使用的是王爽的 組合語言 第3版 因此也只能提到8086cpo的暫存器。對於其他而言,原理都是相通的。對於8086暫存器,有14個暫存器,主要是 ax bx cx dx si di sp bp ip cs ss ds es psw。一 通用暫存器 8086的通用暫存器有ax bx cx dx...

暫存器,標誌暫存器

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