win32汇编
win32汇编中的sizeof
win32汇编中的sizeof不同于其它语言的sizeof ,这个是真正的sizeof,以字节为单位的。
看下例
szhello db ‘hello,world!’,0
mov eax,sizeof szhello
eax=?
答案是
eax=13
因为hello,world!为13个字节,然后0占一个,所以是13
变量命名风格
前缀 含义
b byte
w word
dw dword
h 句柄
lp 指针
sz 以0结尾的字符串
lpsz 指向以0结尾的字符串的指针
f 表示浮点数
st 表示一个数据结构
全局变量下面的前缀为_ 局部变量的前缀为@
enter与leave
ENTER是建立当前函数的栈框架,即相当于以下两条指令:
pushl %ebp
movl %esp,%ebp
8)LEAVE是释放当前函数或者过程的栈框架,即相当于以下两条指令:
movl ebpesp
popl ebp
如果反汇编一个函数,很多时候会在函数进入和返回处,发现有类似如下形式的汇编语句:
pushl