Assembleur pour les nuls

Voila, par accident, j’ai louper quelques cours de j’aurais du suivre. Les cours portaient sur le langage de l’assembleur (plate forme x86). Du coup, je n’y comprends rien à ce langage. Hors, en toute logique, je suis censé comprendre et être capable de l’utiliser.

Quelqu’un aurait-il un petit lien pour apprendre l’assembleur ? (sur google, je n’ai trouvé que des trucs bien avancée et difficile)

http://www.intel.com/design/PentiumXE/documentation.htm ?

non j’déconne, quoi que…

Plus sérieusement le langage assembleur en lui même est tout ce qu’on fait de plus simple, mais c’est l’architecture du processeur derrière qui peut poser problème.

sinon en introduction :
http://www.commentcamarche.net/asm/assembleur.php3
mais c’est un poil limité sur le fonctionnement interne.

j’ai ce bouquin, pas trop mal :
Lien

Une bonne introduction sur le sujet, claire, concise, et cerise sur le gâteau, en français :

http://www.irisa.fr/caps/projects/Technolo…chapter2_9.html

J’avais commencé à lire Art of Assembly, disponible ici:
http://webster.cs.ucr.edu/
Le bouquin est disponible en plusieurs versions, il est plutôt énorme et complet, et commence vraiment par les bases. Par contre, c’est intégralement en anglais.

[quote=« Fukyvin, post:1, topic: 25888 »]Voila, par accident, j’ai louper quelques cours de j’aurais du suivre. Les cours portaient sur le langage de l’assembleur (plate forme x86). Du coup, je n’y comprends rien à ce langage. Hors, en toute logique, je suis censé comprendre et être capable de l’utiliser.

Quelqu’un aurait-il un petit lien pour apprendre l’assembleur ? (sur google, je n’ai trouvé que des trucs bien avancée et difficile)[/quote]

Je te conseille de prendre l’instruction reference de chez Intel afin d’avoir une doc claire précise et exhaustive sur toutes les mnemoniques de l’assembleur x86. Ce sera pratique quand tu auras une question sur telle ou telle instruction.

Sinon l’assembleur x86 n’est pas trop difficile à apprendre. La FPU est assez chiante car elle travaille sur la pile, c’est assez chiant à débugger. Sinon les instructions sont executées dans l’ordre dans lequel tu les rentres et tu n’as pas d’impératifs sur les boucles (si tu te fous des performances). C’est pas le cas de tous !

Il est little endian, ce qui veut dire que l’ordre est du type dest ← source et les données sont « inversées » en mémoire. Je suppose que tu te fous du MMX et autre SSE.

Il y a deux syntaxes, AT&T (utilisée par les compilateurs GNU) et Intel qui est la plus courante et la plus claire. Comme assembleur gratuit je te suggère nasm qui utilise la syntaxe Intel et qui est très bien. Ca te permettra de travailler sur ton PC. C’est le meilleur moyen d’apprendre. Tu as un désassembleur donné avec, ça te permettra de regarder comment sont fait les autres programmes.

Il faut aussi que tu distingues les problèmes de format d’exécutables et d’assembleur pur. Pour écrire un programme assembleur tu dois respecter une norme qui est imposée par l’OS : c’est le format d’exécutable; mais tu dois aussi apprendre la syntaxe de l’assembleur proprement dite. Tu peux faire des programmes ASM Win32, c’est rigolo, 4 ko et une interface graphique, ça claque. :stuck_out_tongue:

Ah petite larme à l’oeil, ça me rappelle quand je débutais en assembleur… :stuck_out_tongue:

je serais tenté de te dire de ne pas chopper la doc de référence d’intel… y a 4 volumes de 300 pages, et c’est pas particulièrement clair pour qui a deja un peu de mal avec l’assembleur…
tu peux regarder sur developpez.com
et puis si tu veux vraiment pas te prendre la tête, tu pars sous windows et tu fais des .com (si tu veux, je dois avoir 2-3 TP de l’année dernière… c’est des exemples simples, mais ils marchent)

moi, ce que j’adore, c’est le tri par bulles en 10 lignes d’asm…