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!
Aidez-moi, s'il vous plais, je suis désespéré!!!
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![]()
Partager