« Assembleur/Le langage assembleur » : différence entre les versions

Contenu supprimé Contenu ajouté
Belebostre (discussion | contributions)
Parie "UNIX" prise en partie sur Wikipédia. Chapitre à éttofer.
 
Belebostre (discussion | contributions)
m Orthographe
Ligne 14 :
L'assembleur est un langage dit '''bas niveau''', c'est à dire que son fonctionnement est très proche du langage machine. Cela veut aussi dire qu'une erreur de codage peut tout à fait faire planter votre machine. Mais l'avantage du langage assembleur est de pouvoir gérer jusqu'au moindre octet de mémoire et de toujours savoir quel code est exécuté par le microprocesseur à un instant donné.
 
L'assembleur àa aussi l'avantage d'être rapide et extrêmement léger. C'est sans doute le langage préféré de tout les concepteurs de virus. Petite comparaison : un programme affichant "Hello, World !" en C pèse 15839 octets, alors que le même programme affichant le même message en Assembleur pèse 23 octets.
 
== Principe de programmation ==
Ligne 20 :
=== Une actions par ligne ===
Lorsqu'on code un programme assembleur, il faut toujours garder à l'esprit que ce langage ne peut exécuter que des actions ''simples''. On a l'habitude de dire qu'une ligne de code sera exécutée en un tour d'horloge du microprocesseur.<br />
Exemple : pour calculer (7+6)[[w:Modulo (informatique)|%]]3, on aura le code suivant :
<source lang="asm">
MOV AX, 7 ; AX, qui est mis à 7, sera la destination
Ligne 32 :
 
=== De haut en bas ===
L'assembleur est exécuté de haut en bas, et ce sans exceptions. Le seul moyen de faire répéter une tachetâche à un programme, et d'utiliser un JMP (saut) ou un CALL (appel à une procédure). Une fois arriver au bout du programme, celui-ci est quitté.
 
=== Toujours surveiller la mémoire ===
Si pour une raison ou une autresautre, vous êtes amené à stoker de très grands nombres, faites très attention à la façon dont vous le faites.<br />
Voici une chose à ne pas faire.
<source lang="asm">
Ligne 48 :
 
== Sécurité ==
Il n'y a aucune sécurité lorsque vous codez en ASM. Lors de l'assemblage, l'assembleur ne vous dira que ce qui l'empêche de faire son travail, il n'effectue aucune vérification des valeurs mises dans les registres. Soyez toujours vigilant, mais sachez tout de même qu'une simple erreur ne sera pas grave pour votre PC, le pire qu'yqui puisse arriver est un redémarrage.
 
== Premier programme en ASM ==
Ligne 62 :
RET ; On termine l'application proprement.
 
message db "Hello, World !", '$' ; On défini la chainechaîne de caractère 'message', terminée par '$'
</source>
 
Ligne 74 :
Hello.asm
<source lang="asm">
message db 'Hello, World !', 10h ; On défini la chaîne de caractèrecaractères 'message', terminée par le caractère 10h
taille equ $-message ; On laisse l'assembleur mesurer la taille de la chaîne, et on la définiedéfini comme constante
 
MOV eax, 4 ; Numéro de la fonction "write"