PUSHAD和POPAD,以及PUSHA和POPA

PUSHAD

PUSHAD也叫保護現場,就是把我們的寄存器壓入棧中
pushad是把eax,ecx,edx,ebx,esp、ebp,esi,edi依次壓入棧中,ESP會減少32,相當于:

push eax
push ecx
push edx
push ebx
push esp
push ebp
push esi
push edi

就是我們在OD的寄存器窗口,看到的寄存器順序,按照由上往下的順序,依次壓入棧,我們觀察一下EDI的值,
在這里插入圖片描述
此時棧頂值為:
在這里插入圖片描述
執行pushad這條語句,棧頂值變成EDI的值了
在這里插入圖片描述

POPAD

POPAD也叫還原現場,將棧中存儲的寄存器值返還給寄存器
與PUSHAD順序相反,將棧中數據彈出,依次傳給EDI、ESI、EBP、ESP、EBX、EDX、ECX、EAX
相當于依次執行:

pop edi
pop esi
pop ebp
pop esp
pop ebx
pop edx
pop ecx
pop eax

PUSHA和POPA

PUSHA和POPA是操作16位寄存器的,功能與PUSHAD和POPAD相同
PUSHA相當于

push ax
push cx
push dx
push bx
push sp
push bp
push si
push di

POPA相當于依次執行:

pop di
pop si
pop bp
pop sp
pop bx
pop dx
pop cx
pop ax

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/380042.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/380042.shtml
英文地址,請注明出處:http://en.pswp.cn/news/380042.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Java——n個數的全排列

例題: 輸入一串字符串,將該字符串中的字符元素進行全排列,然后,一串輸出結果。 例如: 輸入: ABCD 輸出: ABCD ABDC ACBD ACDB ADBC ADCB BACD BADC BCAD BCDA BDAC BDCA CABD CADB CBAD CBDA…

一段個性化stringgrid的代碼

需要注意的是 該段程序使用了 canvas。 procedure TW_CkbTaiZhang.KhLstDrawCell(Sender: TObject; ACol,ARow: Integer; Rect: TRect; State: TGridDrawState);begin if ARowkhlst.Row then with khlst.Canvas do //畫 cell 的邊框 begin Pen.Color : $00ff0000; …

dp 扔雞蛋_使用動態編程(DP)的雞蛋掉落問題

dp 扔雞蛋Problem statement: You are given N floor and K eggs. You have to minimize the number of times you have to drop the eggs to find the critical floor where critical floor means the floor beyond which eggs start to break. Assumptions of the problem: 問…

MOVSX和MOVZX

MOVSX 先符號擴展,再傳送 格式: MOVSX 操作數A ,操作數B //操作數B的空間小于A比如說我們使用命令: movsx eax,bxbx是16位,eax是32位,傳值過程: 先用bx的符號位把eax高16填滿,b…

統計學習以及支持向量機的國內外基本比較重要的書

1、支持向量機導論,此書乃是SVM方面的經典著作, 該書的作者也是近年來SVM、kernel methods學術圈內的活躍學者,對于這些領域均有過重要的貢獻。這本書從“線性機器、核方法、統計學習理論、凸優化”四個方面揭示了SVM的內在機理 --利用核…

Java——集合(TreeSet)

package com.wsq.set; //這里進行調用Person()方法,要進行導包 import java.util.TreeSet; import com.wsq.bean.Person; public class Demo3_TreeSet { /*** TreeSet集合是用來對元素進行排序的,同樣它也可以保證元素的唯一* 當compareTo()方法返…

setmonth_日期setMonth()方法以及JavaScript中的示例

setmonthJavaScript日期setMonth()方法 (JavaScript Date setMonth() method) setMonth() method is a Date class method, it is used to set the month to the Date object with a valid month value (between 0 to 11. 0 for January, 1 for February and so on). setMonth(…

LEA與XCHG

LEA 格式: LEA 通用寄存器 內存地址功能:取地址命令 將內存地址賦值給寄存器 lea eax,dword ptr ds:[ecx0x16]dword 雙字 就是四個字節ptr pointer縮寫 即指針ds 數據段版寄存器[]里的數據是一個地址值,這個地址指向一個雙字型數據 將dwo…

分域名優化的時候要考慮備選IP的問題

我們在需要下載很多內容的時候,很容易想到做分域名的并發下載,給原來的服務器多分幾個域名,因為分不同的域名可能可以在瀏覽器中分到更多的下載進程,提高下載速度。 但是在做網絡應用的時候,我們的一個域名下面有的時候…

面試題-ASP 與 ASP.Net的區別?

比較簡潔的回答: 1.開發語言不同,ASP局限于用腳本語言來開發,而ASP.Net可以使用C#,VB.C等來開發。 2.運行機制不同,ASP是解釋運行的,執行效率較低。ASP.Net是編譯性的編程框架。 3.開發方式不同,ASP里前臺H…

Java——集合(輸入5個學生的信息按總分高低排序)

題目要求: 鍵盤錄入5個學生信息(姓名,語文成績,數學成績,英語成績),按照總分從高到低輸出到控制臺 分析: 1,定義一個學生類 * 成員變量:姓名,…

日期setHours()方法以及JavaScript中的示例

JavaScript Date setHours()方法 (JavaScript Date setHours() method) setHours() method is a Date class method, it is used to set the hour to the Date object with a valid hour value (between 00 to 23). setHours()方法是Date類方法,用于將小時設置為具有…

Google SSL zz

// Google SSL// Modified from SSL Certificates Pro//z 2011-12-29 8:59 AM is2120csdn : reader,calendar// UserScript// name Google SSL// namespace http://raychow.info/// version 2.1.2// description 強制 Google 使用安全連接。//// include htt…

阿諾德.施瓦辛格 訓練方法

阿諾德.施瓦辛格 訓練方法七次“奧林匹亞先生”獲得者、著名影星阿諾德.施瓦辛格,是廣大健美愛好者崇拜的偶像。即使在今天,他那無與倫比的二頭肌和胸肌仍為人們津津樂道。本文是他通過親身體會,講述了怎樣鍛煉才能增長肌肉的觀點和方法&…

ADC和SBB命令

ADC 帶進位加法指令 用法: adc 操作數1,操作數2相當于: 操作數1操作數2進位標志CF->操作數1現在的eax是0,C1,用adc指令直接會是0x6 SBB 帶進位減法指令 用法: sbb 操作數1,操作數2相當…

Java——集合(輸入一串字符串,統計字符串中每個字符出現的次數)

A:案例演示 需求:輸入一串字符串,統計字符串中每個字符出現的次數** 分析:1,定義一個需要被統計字符的字符串2,將字符串轉化為字符數組,才能拿到每一個字符3,定義雙列集合存儲字符串…

entry數組_數組entry()方法以及JavaScript中的示例

entry數組JavaScript entry()方法 (JavaScript entries() method) entries() method is used to create an iterator object of an array to access the keys (index) and values. entry()方法用于創建數組的迭代器對象,以訪問鍵(索引)和值。 Syntax: 句法&#xf…

mul和div指令(8位,16位,32位)

MUL 無符號乘法指令,默認操作數與eax相乘(這里只說32位,其他與下面的div類似) 格式: mul 操作數 //操作數只有一個操作數與eax相乘,結果共有16位(這里的16位是16進制數)&#xff…

2011年年終盤點

不知不覺又到了年底,我坐在電腦前,竭力的回憶,卻發現回憶中一片空白,能記起也就那么幾件事。 一、在暑假做了一個多月的電子商務 在這個過程中,我了解到電子商務的基本流程,以及一些銷售技巧,還…

ASP.NET Application,Session,Cookie和ViewState等對象用法和區別

ASP.NET Application,Session,Cookie和ViewState等對象用法和區別 在ASP.NET中,有很多種保存信息的內置對象,如:Application,Session,Cookie,ViewState和Cache等。下面分別介紹它們的用法和區別。 方法 信息量大小 作用域和保存時間 應用…