0

この c++ 関数を NASM に移植したいと考えています。

DWORD WINAPI Generic(LPVOID lpParameter) {
    __asm {
        mov eax, [lpParameter]
        call eax
        push 0
        call ExitThread
    }
    return 0;
}

ここでlpParameterがどのように機能するかを理解するのに問題があり、NASMでこれをコンパイルするとエラーが発生します。

これは私の現在のコードです:

BITS 32
global _start

_start:
mov eax, [lpParameter]
call eax
push 0
call exitfunk

exitfunk:
mov ebx, 0x0A2A1DE0
push 0x9DBD95A6
call ebp
cmp al, byte 6
jl short goodbye
cmp bl, 0xE0
jne short goodbye
mov ebx, 0x6F721347
goodbye:
push byte 0
push ebx
call ebp

誰でも私を助けることができますか?

4

1 に答える 1

0

IIRC、NASM は名前付き関数パラメーターをサポートしていないため、パラメーターをレジスターまたはスタックから手動で抽出する必要があります。AFAIR、すべての Win32 API 関数はスタック上のパラメーターを想定しているため、これを置き換える必要があります

mov eax, [lpParameter]

これとともに

mov eax, [esp+4]
于 2013-01-15T10:58:02.600 に答える