Les meilleurs cours et tutoriels Assembleur
Les meilleurs cours et tutoriels Assembleur
Une sélection des meilleurs tutoriels et cours gratuits pour apprendre la programmation en Assembleur. Certains cours s'adressent aux débutants en programmation et d'autres aux développeurs confirmés.
Complétez votre formation ou votre découverte avec notre sélection des meilleurs livres. N'hésitez pas à également vous référer à la FAQ Assembleur, aux codes sources téléchargeables et à poser vos questions sur les forums d'entraide.
Page lue fois.
Nombre d´auteurs : 12, nombre d´articles : 14, dernière mise à jour : 21 juin 2021Â
Â
Sommaire
menu
Cours d'initiation à l'Assembleur
-
Ce tutoriel va vous donner la description minimale pour coder en assembleur GNU sous un système GNU/Linux en utilisant le jeu d'instructions Intel 80386. Il est destiné à un public ayant une connaissance suffisante de l'architecture Intel x86. -
Aujourd'hui, il existe une multitude de langages de programmation aux caractéristiques fort différentes. Des langages objet, interprétés, portables, etc. se rencontrent quotidiennement. À tel point qu'il faut faire une totale confiance au compilateur pour traduire cela dans la langue de la machine. Car bien évidemment, un ordinateur ne comprend ni le C, ni le C++, encore moins le Java, le CamL et autres PHP, Python et consorts. Aussi le curieux peut légitimement se poser cette question : que se passe-t-il vraiment dans le ventre de la machine ? L'auteur joue avec le langage de programmation le plus proche de la machine, celui à l'origine de tout : le langage Assembleur. Il vous propose de jouer avec lui. -
Ce tutoriel a pour but de vous familiariser avec la syntaxe du langage Assembleur et vous apprendre à travailler avec les instructions. Vous ferez connaissance avec quelques principes de base sur l'architecture des systèmes informatiques, dans le cadre concret de la famille des processeurs IA-32 Intel et vous développerez vos compétences sur la syntaxe MASM. Enfin, vous aurez un aperçu de l'architecture Win32.
Il n'est nullement indispensable d'avoir une certaine expérience de programmation pour tirer parti de ce tutoriel ; seulement de la patience, la volonté, la détermination d'apprendre et de comprendre. Certes, si vous avez touché à tout autre langage de haut niveau que l'Assembleur, vous allez vous sentir plus à l'aise. -
Ce tutoriel s'adresse à tous ceux qui connaissent déjà les rudiments d'un langage évolué tel que le Basic, le Fortran, le C ou le Pascal et qui souhaitent apprendre l'Assembleur. Une connaissance même sommaire d'un de ces langages suffit ! Aucune connaissance en programmation système n'est requise : le but de ce cours est justement d'en introduire les fondements.
Contrairement aux langages évolués, l'Assembleur, ou langage d'assemblage est constitué d'instructions directement compréhensibles par le microprocesseur : c'est ce qu'on appelle un langage de bas niveau. Il est donc intimement lié au fonctionnement de la machine. C'est pourquoi il est relativement difficile à assimiler, en tout cas beaucoup plus que les langages de haut niveau.
Cela explique également pourquoi il existe au moins autant de langages d'assemblage que de modèles de microprocesseurs.
Avant d'apprendre l'Assembleur Intel 80x86, il est donc primordial de s'intéresser à quelques notions de base concernant par exemple la mémoire ou le microprocesseur. C'est là en effet que se trouvent les principales difficultés pour le débutant. Ne soyez pas rebuté par l'abstraction des concepts présentés dans les premiers paragraphes : il est normal que durant la lecture, beaucoup de choses ne soient pas claires dans votre esprit. Tout vous semblera beaucoup plus simple quand nous passerons à la pratique dans le langage Assembleur.
Le microprocesseur peut fonctionner sous deux modes : le mode réel et le mode protégé. Nous ne traiterons dans ce cours que le mode réel. C'est celui qu'utilisent la plupart des programmes DOS. -
Ce tutoriel présente l'Assembleur des processeurs de la famille Intel : il définit les principaux éléments de l'architecture x86 16 bits/32 bits et liste les principales instructions. Il contient également quelques exemples détaillés.
menu
Assembleur et langages de haut niveau
-
Ce tutoriel est la traduction française du fameux tutoriel PCASM du Dr Paul A. Carter.
Il traite de l'Assembleur en général et de son interfaçage avec le C et le C++. -
Ce tutoriel est limité, d'une part, à C++Builder pour PC et, d'autre part, à l'Assembleur du 80386 de chez Intel. Pour utiliser cet Assembleur, deux possibilités : soit insérer dans un programme C/C++ des lignes d'Assembleur, soit utiliser l'Assembleur en tant que tel sous DOS via une « invite de commandes » et donc écrire un programme intégralement en Assembleur. -
On appelle chemin hamiltonien, du nom du grand mathématicien Hamilton, un chemin particulier qui, dans une avancée, couvre l'ensemble des points en présence sans repasser par une position visitée. Ce sera le cas du cavalier qui chevauche l'ensemble de l'échiquier sans passer deux fois par la même case.
Dans ce tutoriel pour C++Builder, le C++ est utilisé pour tout ce qui est graphique et l'Assembleur pour le calcul pur.
menu
Processeurs
-
Ce document traite de la manière de décoder le jeu d'instructions des processeurs appartenant à la famille des processeurs x86 et traite aussi bien du mode x86 32 bits que du mode 64 bits.
Dans un premier temps, le document aborde les modes d'exécution des processeurs de la famille x86. Ensuite, il met en lumière ce qu'est une instruction et ses différents constituants, à savoir :
- les préfixes hérités des modes 16 et 32 bits ;
- les préfixes 64 bits : REX ;
- l'opcode ;
- le modR/MÂ ;
- le SIB (Scale Index Base)Â ;
- le déplacement (Displacement) ;
- les valeurs immédiates (Immediates).
Finalement, ce document se termine sur l'endianness des processeurs. -
Ce document traite en détail des préfixes dits « d'héritage » s'appliquant aux instructions pour les processeurs appartenant à la famille des processeurs x86.
Dans un premier temps, le document aborde les généralités concernant les préfixes de l'architecture x86. Ensuite, il met en lumière ce qu'est et comment se compose chacun des groupes de préfixes suivant la nomenclature Intel. -
Ce tutoriel présente le jeu d'instructions et le modèle de programmation des microcontrôleurs Motorola ColdFire. -
Cet ouvrage de synthèse sur le microprocesseur 6809 et ses périphériques est le fruit de plus de quatre ans de labeur, de mise en page et de création de croquis. Ce document de travail a pour seule ambition d'être un guide de référence pour tous les passionnés du 6809. -
Les SIMD, acronyme de « Single Instructions Multiple Data » appliquent simultanément une même opération à plusieurs données. Ces jeux d’instructions concernent des entiers (signés ou non) ou des flottants. De l’antique MMX aux différentes versions de SSE, les SIMD ont progressé en richesse fonctionnelle et en registres. Le mémo téléchargeable qu'accompagne cet article de découverte vous permet de débuter sans devoir vous plonger dans la très volumineuse documentation d'Intel ou AMD.
menu
Sécurité
-
Étude des exploitations avancées de stack overflow, écriture de shellcodes polymorphiques et alphanumériques
par David GrossCet article permet de sensibiliser les programmeurs à la sécurité de leurs applications et de démontrer que les protections existantes pouvant être mises en place sur le système afin d'empêcher un dépassement de capacité d'être exploité peuvent être bypassées. Parmi ces protections sont traitées la randomisation de l'adresse de base de la pile sous GNU/Linux sur les noyaux 2.6.x ainsi que la mise en place du NIDS (Network Intrusion Detection System) Snort afin de détecter l'injection d'un shellcode.