2
我正在學習與MASM64的x64程序集。我已經讀過,前4個參數通過寄存器傳遞給過程:RCX
,RDX
,R9
和R8
。如果有更多的參數,我們通過堆棧傳遞它們。如何將參數傳遞給MASM64中的過程?
但有一些令人困惑。
爲什麼這個代碼不工作:
sub rsp, 40h
push 0
push FILE_ATTRIBUTE_NORMAL
push CREATE_ALWAYS
xor r8, r8
xor r9, r9
mov rdx, GENERIC_READ or GENERIC_WRITE
mov rcx, offset szSavePath
call CreateFileA
add rsp, 40h
但此代碼的工作:
sub rsp, 40h
mov qword ptr [rsp+30h], 0
mov qword ptr [rsp+28h], FILE_ATTRIBUTE_NORMAL
mov qword ptr [rsp+20h], CREATE_ALWAYS
xor r8, r8
xor r9, r9
mov rdx, GENERIC_READ or GENERIC_WRITE
mov rcx, offset szSavePath
call CreateFileA
add rsp, 40h
請通過解釋這幫助我。
的問候,大衛
5個參數必須* [RSP + 20H] *,6個在* [RSP + 28H] *等。也* *之前致電* rsp *必須是多個10h – RbMm