2

3つのパラメーターを受け入れるx86アセンブリ言語で関数を作成しようとしています。複数のパラメーターを使用してMASMアセンブリ言語で関数を定義することは可能ですか?

//this is pseudocode: I'm trying to convert this to a valid macro in MASM
//if var1 is equal to var2, jump to the label jumpToHere
function jumpIfEqual(var1, var2, jumpToHere){
    cmp var1, var2;
    je jumpToHere;
}

これを行うための有効な関数を書くことができれば、次のjumpIfEqual(5, 5, jumpToHere)ようになります。

cmp 5, 5;
je jumpToHere;
4

1 に答える 1

3

はい、できます

例えば:

jumpIfEqual PROC var1:DWORD, var2:DWORD, jmpAddress:DWORD
    mov eax,var1
    cmp eax,var2
    jne skip
    pop eax
    push jmpAddress
    skip:
    ret
jumpIfEqual ENDP

....

push OFFSET jumpToHere
mov eax, 5
push eax
push eax
call jumpIfEqual
于 2013-03-11T20:12:18.653 に答える