请看这里
http://www.x64asm.com/viewthread.php?tid=28
CreateWindowExA函数就是超过4个参数的.四个参数后的其他参数依次压入堆栈,其中看到64位下长度为8指针.如:
http://www.x64asm.com/viewthread.php?tid=28
CreateWindowExA函数就是超过4个参数的.四个参数后的其他参数依次压入堆栈,其中看到64位下长度为8指针.如:
;开始创建窗口
sub rsp,84H
xor rcx,rcx
lea rdx,szWndClassName
lea r8,szWndTitleName
mov r9,WS_OVERLAPPEDWINDOW
;窗口长宽高低全部为默认,四个参数后的其他参数依次压入堆栈
mov rax,CW_USEDEFAULT ;这句给RAX设定值
mov [rsp+32],rax ;RAX值压栈,第五个参数
mov [rsp+40],rax
mov [rsp+48],rax
mov [rsp+56],rax
;窗口菜单等为0
xor rax,rax
mov [rsp+64],rax
mov [rsp+72],rax
;窗口实例句柄
mov rax,hInstance
mov [rsp+80],rax
xor rax,rax
mov [rsp+88],rax
;创建窗口
call CreateWindowExA
rcx第一个参数,rdx第二个参数,r8第三个参数 ,r9第四个参数,[rsp+32]第四个参数,后面依次累加8