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 :
Y-a-t-il quelqu'un qui pourrait m'aider à traduire ce passage _asm {} en asm (); SVP ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 } }
Partager