Aide pour compiler du code assembleur
Bonjour,
Je souhaite compiler un programme en C contenant du code assembleur mais la syntaxe avec le mot réservé _asm {} n'est pas acceptée, il faut utiliser le mot asm (); avec les "".
La syntaxe est assez complexe. J'ai jeté un oeil sur http://www.ibiblio.org/gferg/ldp/GCC...-HOWTO.html#s5 et je ne suis pas sûr du passage de paramètres...
Je compile avec Code::Blocks avec le compilateur GNU par défaut.
Voici le code en question :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| //just saves execution contect and calls check()
_declspec(naked) Proxy()
{
_asm{
//save execution contect and calls check() -the rest depends upon the value check() returns
// if it is 1, proceed to the actual callee. Otherwise,return STATUS_ACCESS_DENIED
pushfd
pushad
mov ebx,esp
add ebx,40
push ebx
call check
cmp eax,1
jne block
//proceed to the actual callee
popad
popfd
jmp RealCallee
//return STATUS_ACCESS_DENIED
block:popad
mov ebx, dword ptr[esp+8]
mov dword ptr[ebx],0
mov eax,0xC0000022L
popfd
ret 32
}
} |
Y-a-t-il quelqu'un qui pourrait m'aider à traduire ce passage _asm {} en asm (); SVP ?