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