Pour les débutants comme moi,voici comment utiliser un prog ASM dans
un prog C et inversement en mode console.
Source / Exemple :
Appeler une routine ASM à partir d'un prog en C (mode console)
--------------------------------------------------------------
module C;
#include <stdio.h>
#include <stdlib.h>
extern int asm_main
int main()
{
int retour;
retour=asm_main();
printf("le resultat de la routine asm_main est : %ld",retour);
return 0;
}
module asm;
.586
.model small,c
asm_main PROTO C
.code
asm_main PROC C
mov eax,10
mov ebx,20
add eax,ebx
ret
asm_main endp
end
vous assembler le module asm,vous renommer en .o au lieu de .obj,et vous lier avec le module C.
Appeler une routine C dans un prog asm (mode console)
-----------------------------------------------------
Vous devez utiliser un module C comme "lanceur" du prog asm.
C'est cela qui permet d'utiliser les librairies C.
module C;
#include <stdio.h>
#include <stdlib.h>
extern int asm_main
int main()
{
int retour;
retour=asm_main();
return 0;
}
module asm:
.586
.model small,c
printf PROTO NEAR,string:DWORD,P1:DWORD
asm_main PROTO
.data
format byte '%ld',13,0
.code
asm_main PROC PUBLIC uses ecx
mov eax,30
mov ecx,30
add eax,ecx
invoke printf,offset format,eax
mov eax,0
ret
asm_main endp
end
Pour tranformer les protypes des fonctions C en syntaxe MASM,il faut utiliser H2INC.exe (fournit avec masm 615 normallement)
Bonne prog.
parki
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.