Bonjour,
En relisant la documentation de Nasm j'ai vu que pour obtenir un fichier win32 executable il était possible d'utiliser le format suivant:
nasm -fwin32 machin.asm
J'utilise habituellement le format obj de la façon suivante
nasm -fobj machin.asm
et je link ainsi
alink -oPE machin.obj
L'option -fwin32 ne fonctionne pas avec les déclarations d'importation des fonctions et dll
Faut-il créer une section spécifique pour les importations et comment la déclarer ?
Les erreurs apparaissant à l'assemblage sont indiquées en rouge.
extern hexascii
import hexascii d:\madll.dll ;
parser: instruction expected extern ExitProcess
import ExitProcess Kernel32.dll ;
symbol `import' redefined et parser: instruction expected extern MessageBoxA
import MessageBoxA user32.dll;
symbol `import' redefined et parser: instruction expected segment code public use32 class=CODE
..start: ;
unrecognised special symbol `..start' mov al,0x3E
call [hexascii]
mov [chaine],ax
mov [chaine+2],byte 0
push byte 0
push dword Titre
push dword chaine
push byte 0
call [MessageBoxA]
push byte 0
call [ExitProcess]
ret
segment data public use32 class=DATA
Titre db "Convertit un octet en chaine",0
chaine resb 3
Si quelqu'un connait la syntaxe à adopter pour ce format, je suis preneur.
Nota: J'avais essayé ce mode d'assemblage pour voir les différences générées entre ces deux formats