NewbieContest

Général => Defouloir => Discussion démarrée par: DarK-CrasH le 05 Août 2009 à 19:59:27



Titre: L'assembleur [ Sa me fait peur :p ]
Posté par: DarK-CrasH le 05 Août 2009 à 19:59:27
Bonsoir,
Je cherche des cours ou tutoriels pour apprendre l'assembleur de manière simplifiée ou au minimum
compréhensible ;) . J'entend déjà venir deux trois personnes qui n'ont que l'envie de rabatte les autres,
dire :  va voir google ! Je leur répond que je l'ai déjà consulter sans succès alors je vous demende de
l'aide ( pourquoi pas des tutos avec lesquels vous même avez apris )


Merci


Titre: Re : L'assembleur [ Sa me fait peur :p ]
Posté par: Shakan le 06 Août 2009 à 02:46:53
Apprendre à afficher "hello world" en assembleur ce serait un bon début je pense...  =)
En effet tu comprendrais déjà pas mal de trucs, les bases quoi.



Titre: Re : L'assembleur [ Sa me fait peur :p ]
Posté par: N-clear le 06 Août 2009 à 05:19:42
Alors déjà je t'envoie vers :
Le manuel de Netwide Assembler (http://www.nasm.us/doc/nasmdoc3.html), c'est rempli d'info usefull.
Ici (http://www.cin.ufpe.br/~if817/arquivos/asmtut/index.html) quelques infos sur l'assembleur sous Linux (même si tu code avec Windows il y a quelques trucs bon à prendre).

Bon c'est vraiment dur de trouver un tutorial complet, cohérent, facile d'accès sur l'assembleur :/ (je m'y connais malheureusement pas accès pour faire un tuto)
Bonne chance.

edit : si je suis motivé je te fait un source de hello world en assembler x86 dans la journée (j'ai sous la  version asm SPARC (qui a une syntaxe dans le style AT&T) donc ça risque plus de t'embrouiller qu'autre chose)
Tu code sur Windows ou Linux?

Voila un code fait  l'arrache qui affiche hello world sous linux puis quo fait une erreur de segmentation
Code:
; les commentaires commencent pas un ;
[BITS 32]
GLOBAL _start ; point d'entree du programme

segment .data ; donnée initialisées
chaine db 'hello world',10,0 ;chaine est un label
; db sert à réserver de la place pour des données (ici des byte) initialisés
; 'hello world' est une chaine de style C terminer par un caractère nul
; pour des valeurs non initialisées on utilise resb, resw, ... (ça correspond aux variables du C)

segment .text ;segment de code exécutable
_start: ;début du programme
    xor eax, eax   ; le registre eax est mis à zéro
    add eax, 4 ; on ajoute 4 a eax
    mov ebx, 1 ; on met dans ebx
    mov ecx, chaine ; on met l'adresse de début de la chaine dans ecx
    mov edx, 14 ; longueur de la chaine
    int 0x80 ; interruption logiciel 80, elle sert à délancher un appel système, ici write

A compiler comme ça :
nasm -f elf hello.as
ld -o hello hello.o
et pour lancer : ./hello

en fait dans le registre eax j'ai mis 4 qui est le numéro de l'appel système à utiliser
(/usr/include/asm/unistd.h donne la liste des appels systèmes et leur signification)
ensuite il faut remplir les registre comme l'indique la fonction du manuel (man 2 write) :
ssize_t write(int fd, const void *buf, size_t count);
                   eax           ebx            ecx
                  1 (stdout)  chaine         14

Bon en fait là t'apprend surtout à utilise un appel système. Il aurait été possible d'afficher la chaine en faisant appel à la la libc (printf).
Je te conseille d'apprendre à additionner des choses, à adresser la mémoire et à gérer la pile (push, pop) c'est a le plus important.
Ensuite il y a plusieurs assembleurs, le 16 bits en mode réel (pour développer des OS), le 32 en mode protégé comme je viens de te monter.
/me retourne apprendre l'assembleur, parce qu'il de loin pas tout capté


Titre: Re : L'assembleur [ Sa me fait peur :p ]
Posté par: DarK-CrasH le 06 Août 2009 à 08:16:25
Merci de ta réponse même si tout n'est pas clair.

Je code sous windows mais je peux passer sous ubuntu si necessaire d'ici quelques jours car je ne suis pas chez moi actuellement.
Merci encore je vais étudier ça  =D


Titre: Re : L'assembleur [ Sa me fait peur :p ]
Posté par: Th0r le 28 Août 2009 à 12:40:15
Salut, regarde par la ^^ http://ftp-developpez.com/asm/cours/noteworthy/pas-a-pas-vers-l-assembleur-par-lord-noteworthy.pdf (http://ftp-developpez.com/asm/cours/noteworthy/pas-a-pas-vers-l-assembleur-par-lord-noteworthy.pdf)


Titre: Re : L'assembleur [ Sa me fait peur :p ]
Posté par: simpsonmaniac le 28 Août 2009 à 13:49:31
Ou là : http://www.drpaulcarter.com/pcasm/pcasm-book-pdf.zip