就随手写吧。api
.model 语句
使用flat模式,是win32程序使用的模式,代码和数据段使用同一个4GB段。函数
.stack, .data,.data?,.const ,.code是分段伪指令,在win32中实际上只有代码和数据之分。与DOS汇编不一样,win32汇编不用考虑堆栈,系统会为程序分配一个向下扩展,足够大的段做为堆栈段,所以.stack段定义尝尝被忽略。指针
data段放在_DATA节区,代码段放在_TEXT节区。code
堆栈段可读可写,所以能够被调度。扩展
程序入口地址:
汇编中由end 语句指定
如:
start:
.....model
end start ;全部的代码都必须写在end以前,由于这句话同时表示源程序的结束,start 是相似于c中goto的用法。数据类型
invoke func_name[,pamater1][,paramater2][,paramater3]......
等同于 c中的
fun_name(paramater1,paramater2,paramater3,...) 就是换了个写的方式而已。程序
返回值的类型对于汇编来讲也只有dword一种类型,它永远放在eax中。若是要返回的内容不是一个eax所能够容纳的,win32api采用的方法是eax中存放一个指向返回数据的指针,或者在调用参数中提供一个缓冲区地址,干脆把数据直接返回到缓冲区中去。方法
函数在调用前必须声明:
fun_name proto [distance][language][pama1]:dataType,[pama2]:dataType ......
也就是说,参数名不重要,数据类型很重要。数据