|
|
|
|
Bonjour,
Je sais programmer en C et en C++, et maintenant, j'aimerai apprendre l'assembleur sous Windows.
Mais à chaque fois que je consulte un tutoriel, je trouve un code assembleur, je le teste mais erreur lors de la compilation. :(
C'est tiré de Wikipédia http://fr.wikipedia.org/wiki/Assembleur#Exemples_simples
.global _start
BONJ: .ascii "Bonjour\n"
_start: mov $4 , %eax
mov $1 , %ebx
mov $BONJ , %ecx
mov $8 , %edx
int $0x80
mov $1 , %eax
mov $0 , %ebx
int $0x80
Et c'est aussi que j'ai du mal à choisir le bon assembleur (MASM, FASM, TASM, NASM....):
SVP, pouvez-vous m'indiquer un bon tutoriel, et aussi quel assembleur choisir?
D'avance merci.
Bon, je vien de trouver comment télécharger MASM32bits. Il faut aller ici http://masm32.online.fr/m32v9r.zip
|
Regarde la F.A.Q Assembleur : http://asm.developpez.com/faq/ |
Hello !!
|
Voilà, je lisai des docs sur l'assembleur, et puis je suis tombé sur ça :
|
Avec dev c++ logiquement c'est
__asm__( /*instructions */) ou alors pour être sûr que le code sera inséré là où il faut (sans optimisations): __asm__ __volatile__( /*instructions */) Et la syntaxe doit être du AT&T et non pas intel. Exemple, ce qui s'écrit comme ça en intel: mov eax, 1 push dword [eax+2] donnera en AT & T: movl $1, $eax pushl 2(%eax) |
A vrai dire il n'y a pas beaucoup de différence. C'est le même assembleur mais avec deux syntaxe différente, et peu de choses changent à vrai dire:
|
Merci.
|
Oui mais test n'a pas une adresse mémoire constante car c'est une variable locale, donc stockée dans la pile. Donc il n'a pas de référence.
|