Probleme avec NASM et ALINK

Résolu
epineurien Messages postés 83 Date d'inscription samedi 21 mai 2005 Statut Membre Dernière intervention 22 mars 2011 - 27 oct. 2007 à 15:36
cs_Nasman Messages postés 202 Date d'inscription mardi 17 mai 2005 Statut Membre Dernière intervention 29 septembre 2008 - 29 oct. 2007 à 08:28
Bonjour !

Voilà ma question :

Je commence à utiliser NASM mais j'ai quelques problemes avec le linker ; Alink.
Avec ce code (issu de la doc. de NASM donc je ne pense pas qu'il soit buggé) :

segment data
texte: db "Hello",13,10,"$",0

segment stack
resb 64
stacktop:

segment code
..start:

USE16
mov ax,data
mov ds,ax
mov ax,stack
mov ss,ax
mov sp,ax

mov dx,texte
mov ax,0
mov ah,9
int 0x21

mov ax,0x4c00
int 0x21

La compilation du .obj se passe sans problême , mais alink me dit :
Reloc 0:Segment selector relocations are not supported in PE files .
Le problême vient de l'initialisation de DS,SS et SP mais je ne voit pas comment faire autrement (de plus ces lignes de code viennent du manuel de NASM , donc ca devrait marcher normalement) .

Quelqu'un à une solution ?
Note : j'utilise la dernière version de NASM et la dernière version d'Alink .

2 réponses

cs_Nasman Messages postés 202 Date d'inscription mardi 17 mai 2005 Statut Membre Dernière intervention 29 septembre 2008 3
29 oct. 2007 à 08:28
Bonjour epineurien,

Ton message d'erreur signifie que tu as essayé de créer un fichier de format PE (soit 32 bits pour windows) à partir d'un fichier 16 bits (directive USE 16 et initialisation des segments).


Si tu veux un exécutable 16 bits tu dois:


Pour Nasm:


           Nasm -fobj monfichier.asm [-o monfichier.obj]

Pour alink:
          alink -oEXE monfichier.obj [o monfichier.exe]

Pour les différents modes de compilation avec Nasm et alink, regarde une de mes sources:

http://www.asmfr.com/codes/CREATION-DIFFERENTS-EXECUTABLES-AVEC-NASM-ALINK_37036.aspx

A+
3
cs_patatalo Messages postés 1466 Date d'inscription vendredi 2 janvier 2004 Statut Modérateur Dernière intervention 14 février 2014 2
28 oct. 2007 à 19:14
salut,

il faut que tu sache sous quel format tu veux l'assembler COM,MZ,PE ensuite verifie les parametres passés a alink.

@++
0
Rejoignez-nous