Bonjour,
Dans le cadre de mes études en informatique, des cours d'assembleur me sont dispensés. Sont mis à notre disposition :
- un canevas général d'un programme ecris en assembleur;
- un fichier ecris en c++ (io.cpp), par l'intermédiaire duquel on peut afficher le contenu de certains registres.
Sur les ordinateurs sur lesquels nous travaillons se trouve Linux 32bits.
Or, chez moi, je travaille avec Linux 64bits et j'ai des problèmes.
Lorsque je compile mon fichier assembleur en vue d'obtenir un fichier objet, tout se passe bien. (nasm -f elf canevas.asm).
Mais lors de la compilation finale (g++ io.cpp canevas.asm), j'obtiens un message d'erreur :
Je me demandais d'où provenais cette erreur. J'ai déjà essaye de nombreuses choses (utiliser yasm plutot que nasm, utiliser la commande elf64 plutot que elf, ...) mais rien n'y fais.
Code : Sélectionner tout - Visualiser dans une fenêtre à part i386 architecture of input file `canevas.o' is incompatible with i386:x86-64 imput output
Lorsque j'utilise elf64 plutot que elf, on me dit que les instructions POPA et PUSHA ne sont pas valides en mode 64-bits.
Voici les fichiers en question, ce serait sympa que quelqu'un travaillant sous Linux 64bits essayent les mêmes commandes que moi :
canevas.asm
io.cpp
Merci d'avance !
Partager