就随手写吧。
.model 语句
使用flat模式,是win32程序使用的模式,代码和数据段使用同一个4GB段。
.stack, .data,.data?,.const ,.code是分段伪指令,在win32中实际上只有代码和数据之分。与DOS汇编不同,win32汇编不用考虑堆栈,系统会为程序分配一个向下扩展,足够大的段作为堆栈段,因此.stack段定义尝尝被忽略。
data段放在_DATA节区,代码段放在_TEXT节区。
堆栈段可读可写,因此可以被调度。
程序入口地址:
汇编中由end 语句指定
如:
start:
.....
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 ......
也就是说,参数名不重要,数据类型很重要。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。