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 :

8+5+3*2
Le code que j'ai écrit :

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
Je compile donc avec la commande suivante :

nasm -f elf premier.asm
Jusque là tout ce passe bien, par contre dès que je veux réaliser l'édition de lien via la commande suivante :

ld -o premier premier.o
J'obtiens l'erreur suivante :

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
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.
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