Bonjours à tous!
Il y a certains points que je ne comprend pas au niveau de l'inclusion de librairies et de fonctions :

Comment permettre l'utilisation d'une fonction C, comme par exemple printf dans un programme assembleur 32 bits?
Je sais qu'il faut l'appeler : "call _printf", et je connait les conventions d'appel, mais comment indiquer au compilateur qu'il s'agit d'une fonction externe? Faut-il rajouter "extern _printf" dans le segment de code, ou bien inclure un prototype au début du fichier : "_printf proto ???"?

Ensuite, comment me procurer le fichier .lib qui contient la fonction précompilée? J'ai regardé dans le dossier lib de mon compilateur C, il n'y a pas de fichier "stdio.lib".

Ensuite, comment montrer au linker dans quel fichier il doit rechercher la fonction précompilée?


Ensuite, j'ai essayé d'utiliser les fonctions que propose masm, le compilateur que j'utilise.
Le programme suivant, qui doit afficher une chaîne sur la console, ne fait strictement rien!
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
 
.486
.model flat, stdcall
option casemap:none
 
include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
includelib \masm32\lib\kernel32.lib
include \masm32\m32lib\masm32.inc
includelib \masm32\m32lib\masm32.lib
 
.data 
Message   db "Message à afficher.",0 
 
.code
start:
    invoke StdOut, addr Message
 
    invoke ExitProcess, 0
end start
Aidez-moi, s'il vous plais, je suis désespéré!!!