Bonsoir,
Je débute en Assembleur. J'essaie actuellement de faire fonctionner un programme des plus simples sur mon portable mac ayant un processeur Intel core2duo.
Le but de mon programme est de réaliser l'opération suivante :
Le code que j'ai écrit :8+5+3*2
Je compile donc avec la commande suivante :
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 global _start section .data section .text _start: mov al,2 mov ah,3 mul ah add ax,8 add ax,5 mov eax,1 mov ebx,0 int 0x80 trap
Jusque là tout ce passe bien, par contre dès que je veux réaliser l'édition de lien via la commande suivante :nasm -f elf premier.asm
J'obtiens l'erreur suivante :ld -o premier premier.o
Apparemment il faudrait donc passer l'architecture utilisée par mon ordinateur via le paramètre "-archi". J'ai regardé un petit peu la documentation de ld, malheureusement je ne sais pas du tout quoi indiquer.ld: warning -arch not specified
ld: warning in premier.o, file is not of required architecture
ld: could not find entry point "start" (perhaps missing crt1.o) for inferred architecture i386
De plus pourquoi est-il écrit que le point d'entré start n'a pas été trouvé ?
Quelqu'un saurait-il m'expliquer ce qu'il faut faire ?
J'ai également deux trois petites questions à propos de l'assembleur NASM :
- La section .data doit elle toujours être spécifié même si on l'utilise pas ?
- Le TRAP du label __start est t'il obligatoire ou peut-on s'en passer ?
Merci.
Cordialement,
Laurent
Partager