Win32汇编_基础
Win32匯編_基礎(chǔ)
包含全部段的源程序結(jié)構(gòu):
.386
.model?flat, stdcall
Option?casemap:none
;<一些include語句>
.stack [堆棧段的大小]
.data
;<一些初始化過的變量定義>
.data?
;<一些沒有初始化過的變量定義>
.const
;<一些常量定義>
.code
;<代碼>
;<開始標(biāo)號(hào)>
;? <其它語句>
end?開始標(biāo)號(hào)
調(diào)用API:
push uType
push lpCaption
push lpText
push hWnd
call MessageBox
;MASM編譯器的偽指令
invoke MessageBox, NULL, offset szText, offset lpCaption, MB_OK
函數(shù)的返回值:
一般放在eax中.如果返回的內(nèi)容不是一個(gè)eax所能容納的,一般是eax中返回一個(gè)指向返回?cái)?shù)據(jù)的指針,或者用參數(shù)提供一個(gè)緩沖區(qū)地址,數(shù)據(jù)直接返回到緩沖區(qū)中去.
函數(shù)的聲明:
函數(shù)名?proto [距離] [調(diào)用方式] [參數(shù)1]: 數(shù)據(jù)類型, [參數(shù)2]: 數(shù)據(jù)類型, …
參數(shù)名可以省略.
標(biāo)號(hào):
當(dāng)在程序使用一條跳轉(zhuǎn)指令的時(shí)候,可以用標(biāo)號(hào)來表示跳轉(zhuǎn)的目的地,在編譯的時(shí)候會(huì)把它替換成地址,標(biāo)號(hào)既可以定義在目標(biāo)指令同一行的頭部,也可以在目標(biāo)指令前一行單獨(dú)用一行定義.
標(biāo)號(hào): 目標(biāo)指令??? ;方法1
標(biāo)號(hào):: 目標(biāo)指令?? ;方法2
方法1(一個(gè)冒號(hào)),作用域是當(dāng)前子程序,方法2(一個(gè)冒號(hào)),作用域是整個(gè)程序
@@:
當(dāng)用@@做標(biāo)號(hào)時(shí),可以用@F和@B來引用它,@F表示本條指令后的第一個(gè)@@標(biāo)號(hào),@B表示本條指令前的第一個(gè)@@標(biāo)號(hào),程序中可以有多個(gè)@@標(biāo)號(hào),但@F和@B只尋找匹配最近的一個(gè).
轉(zhuǎn)載于:https://www.cnblogs.com/w413133157/archive/2010/08/19/1803398.html
總結(jié)
以上是生活随笔為你收集整理的Win32汇编_基础的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HDOJ 1016 HDU 1016 P
- 下一篇: 移动界面设计点滴:工欲善其事,必先利其器