invoke偽指令

通過反匯編helloworld對話框來看invoke偽指令
invoke是調用WinAPI的偽指令
把上一個helloworld對話框編譯并連接成hello.exe然后用OD打開得到下圖

前文說過ML.EXE編譯invoke時會把invoke的參數PUSH入棧和一個CALL,在代碼段中只有兩個invoke指令
	invoke	MessageBox,NULL,offset?messageS,offset?titleS,MB_OK
	invoke	ExitProcess,NULL
OD反匯編出invoke指令:	
	push 0		;MB_OK的數值為 0H
	push 00403000	;titleS字符串的地址
	push 0040300f	;messageS字符串的地址
	push 0		;NULL 
	call <jmp.&user32.MessageBoxA>;從OD看出 MessageBoxA的地址為0040101A 
					;編譯器編譯出會把MessageBoxA編譯為目標地址 
					;相當于call 0040101A
	push 0		;ExitProcess函數的參數
	call <jmp.&kernel32.ExitProcess>
在OD中F8執行到call前看到棧中數據

invoke	MessageBox,NULL,offset?messageS,offset?titleS,MB_OK
最先入棧的是MB_OK然后參數依次入棧
F8單步執行 最后按下按鈕"確定" EAX寄存器保存返回值 1H(表示按下了確定按鈕)


總結:剛學WIn32和OD,有不正確的還請大家指教,
為了調用函數的方便MASM提供了一個invoke偽指令當編譯器遇到這個偽指令時會把此偽指令所調用的函數的參數依次壓入棧中并CALL函數.


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

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

相關文章

Azure Virtual Network, 虛擬網絡

云上的虛擬網絡把不同用戶完全的隔離開來。同時可以自己對虛擬網絡進行定制&#xff0c;設置各種安全訪問策略&#xff0c;配置load balancer等等。 在新的基于Azure Resource Manager (ARM)的部署方式中&#xff0c;虛擬網絡已經是默認設置了。也就是說在通過ARM部署的VM&…

百度地圖API的第一次接觸——自定義控件

1.定義一個控件類&#xff0c;即function function ZoomControl(){ // 設置默認停靠位置和偏移量 this.defaultAnchor BMAP_ANCHOR_TOP_LEFT; this.defaultOffset new BMap.Size(10, 10); } 2.通過JavaScript的prototype屬性繼承于BMap.Control ZoomControl.pr…

include語句

程序用到MessageBox和ExitProcess函數它們分別在user32..dll和Kernel32.dll中 那么就必須在程序中使用include語句包含這兩個庫文件,此時程序中可以使用user32..dll和Kernel32.dll中所有的函數 include相當于java中import導入包語句

Spring MVC Controller與jquery ajax請求處理json

在用 spring mvc 寫應用的時候發現jquery傳遞的【json數組對象】參數后臺接收不到&#xff0c;多訂單的處理&#xff0c;ajax請求&#xff1a; var cmd {orders:[{"storeId":"0a1", "address":"西斗門路2號", "goods":[{&…

課堂例子解答

Editbox 等價類劃分測試用例例子 要求輸入1到6個英文字符或數字&#xff0c;按OK結束并輸入。 其中有效等價類包括:1.長度1-6&#xff0c;2.a-z,A-Z,0-9 無效等價類包括&#xff1a;1.長度0或大于6&#xff0c;2.輸入字母數字以外的字符&#xff0c;控制字符&#xff0c;標點符…

從代碼里提取的測試需求

服務器端的測試&#xff0c;軟件需求基本等于產品說明書&#xff0c;只有大概&#xff0c;沒有詳盡。再需求不充分的情況下&#xff0c;我們可以從哪些方面來挖掘測試需求呢&#xff1f; 現已知需求&#xff1a;服務器支持對客戶端的版本升級&#xff0c;存在兩種升級規則&…

PUSH/POP

棧操作指令PUSH 寄存器/段寄存器/內存單元POP 寄存器/段寄存器/內存單元PUSH AX1)SPSP-2 ,SS:SP指向新的內存單元2)將AX送入SS:SP指向的內存單元POP AX1)將SS:SP指向的內存單元處的數據送入AX中2)SPSP2

Android Ant 和 Gradle 打包流程和效率對照

一、Ant 打包&#xff1a;&#xff08;下載ant、配置環境變量就不說了&#xff09; 1、進入命令行模式&#xff0c;并切換到項目文件夾。運行例如以下命令為ADT創建的項目加入ant build支持&#xff1a; android update project -p . -t "android-17" 2、build腳本默…

讀軟件工程這本書的感悟(第一次作業)

在還沒上這門課之前&#xff0c;我認為軟件工程是讓我們學會編寫軟件&#xff0c;但是在看到這本書后&#xff0c;我才知道我們學的不是如何的開發軟件&#xff0c;而是在學習開發和維護軟件&#xff0c;以及如何把經過時間考驗而證明正確的管理技術和當前能夠得到的最好的技術…

請大家編譯連接并執行一下

由于是筆記&#xff0c;也許記得有點糟糕&#xff0c;也許班門弄斧沒有獨到見解 &#xff0c;見諒見諒

KVC和KVO

OC中的一個比較有特色的知識點&#xff1a;KVC和KVO一、KVC操作OC中的KVC操作就和Java中使用反射機制去訪問類的private權限的變量&#xff0c;很暴力的&#xff0c;這樣做就會破壞類的封裝性&#xff0c;本來類中的的private權限就是不希望外界去訪問的&#xff0c;但是我們這…

8086加法指令ADD

加法指令ADD(ADDition) ADD OPRD1,OPRD2 ;OPRD1<--OPRD1OPRD2 ;完成OPRD1與OPRD2相加 ,結果保存在OPRD1中CODE SEGMENT MOV AX,1 MOV BX,2 ADD AX,BX ;AX<--AXBX ,結果AX3CODE ENDS參與運算的操作數類型必須保持一致,同為字節或字可組合以下幾種形式&…

Fragment基礎講解

//新建一個碎片public class LeftFragment extends Fragment { Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // 加載一個碎片界面 View view inflater.inflate(R.layout.leftfragment, container, false)…

[bzoj1012](JSOI2008)最大數maxnumber(Fenwick Tree)

Description 現在請求你維護一個數列&#xff0c;要求提供以下兩種操作&#xff1a; 1、 查詢操作。語法&#xff1a;Q L 功能&#xff1a;查詢當前數列中末尾L個數中的最大的數&#xff0c;并輸出這個數的值。限制&#xff1a;L不超過當前數列的長度。 2、 插入操作。語法&…

javaScript轉換日期合格式

javascript如何將時間日期轉換為Date對象:有時候需要講一個字符串型的時間日期轉換為Date時間對象&#xff0c;下面就通過一個簡單的實例提供一種解決方案&#xff0c;當然也是一種思路&#xff0c;可以進行一定的變通&#xff0c;以達到舉一反三的效果。例如這里有一個時間日期…

8086減法指令SUB

減法指令SUB(SUBtraction) SUB OPRD1,OPRD2 ; OPRD1<-- OPRD1-OPRD2 都影響FLAG標志寄存器,同樣的包含兩種含義(有符號減法和無符號減法)

奇怪吸引子---Dadras

奇怪吸引子是混沌學的重要組成理論&#xff0c;用于演化過程的終極狀態&#xff0c;具有如下特征&#xff1a;終極性、穩定性、吸引性。吸引子是一個數學概念&#xff0c;描寫運動的收斂類型。它是指這樣的一個集合&#xff0c;當時間趨于無窮大時&#xff0c;在任何一個有界集…

8086 INC, DEC

INC OPRD ;OPRD<--OPRD1 ;自加1指令code segmentmov ax,0inc ax ;ax<--ax1 ,ax1inc ax ;ax<--ax1 ,ax2code endsDEC OPRD ;OPRD<--OPRD-1 ;自減1指令code segmentmov ax,5dec ax ;ax<--ax-1 ,ax4 code ends

iPhone UITableViewCell如何滾動到視圖頂端。

如何讓UITableViewCell滾動到視圖頂端。 - (void)scrollToRowAtIndexPath:(NSIndexPath *)indexPath atScrollPosition:(UITableViewScrollPosition)scrollPosition animated:(BOOL)animated;- (void)scrollToNearestSelectedRowAtScrollPosition:(UITableViewScrollPosition)s…

app 一些常用的

發短信 &#xff1a;sms:10086 打電話&#xff1a;tel:10086 1、-webkit-tap-highlight-color:rgba(255,255,255,0)可以同時屏蔽ios和android下點擊元素時出現的陰影。備注&#xff1a;transparent的屬性值在android下無效。 2、-webkit-appearance:none可以同時屏蔽輸入框怪異…