PureBasic

Forums PureBasic
Nous sommes le Mar 17/Sep/2019 3:35

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 1 message ] 
Auteur Message
 Sujet du message: Tutoriel 1 - Assembleur, généralités (simple approche)
MessagePosté: Dim 17/Oct/2004 19:45 
Hors ligne
Avatar de l’utilisateur

Inscription: Jeu 22/Jan/2004 14:31
Messages: 3518
Localisation: Sourans
Citation:
Tutorial 1 - L'assembleur, généralités
-------------------------------------------
- Terminé le 17 octobre 2004 -
-----------------------------------


L'assembleur est Langage de programmation qui est constitué d'instructions qui sont nommées par un mnémonique, c'est-à-dire un nom court.
Ce mnémonique est composé de quelques lettres qui évoquent le type d'action que va faire l'instruction.

Par exemple l'instruction ADD pour évoquer une addition, SUB pou évoquer une soustraction (mnémoniques hérités de l'anglais)

Dans un microprocesseur, les instructions sont codées et sont représentées sous une forme numérique.
Au tout début, il fallait programmer avec une suite d'instructions numériques, ce langage étant appelé langage machine.

Un programme ressemblait à ça (valeurs numériques n'ayant rien à voir avec les valeurs réelles)

10
AC
48
54
43
11

etc.

Cela devient vite fastidieux car cette suite numérique est peu parlante.
De plus, cette programmation s'effectue directement avec les adresses, lorsque l'on fait un saut, on donne directement la valeur du déplacement (qui ne se code pas tout à fait de la même manière si le saut se fait 'en avant' ou 'en arrière'.
Cela devient vite compliqué, il y a des instructions dont les sauts sont courts donc dans une plage bien précise courte, d'autres sauts longs une plage différente.
Si l'on commet une erreur de calcul sur le saut, ça plante et comme ce langage est peu parlant, ça devient vite galère de trouver l'erreur.

Pour palier à cette représentation du langage machine, le langage "assembleur" a mis en place.
Ces mnémoniques sont directement liés aux instructions du langage machine.
L'assembleur représente soit le langage soit le programme qui va permettre de transformer une suite d'instructions asm en programme parfaitement fonctionnel.

Chaque microprocesseur a son langage et son jeu d'instructions qui lui est propre, et les microprocesseurs d'une même famille ont une partie des instructions qui sont communes.
Nous ne nous occuperons que des microprocesseurs de la famille X86, les compatibles IBM.
Le langage assembleur est indépendant du système d'exploitation, il se réfère simplement au microprocesseur auquel il s'applique.

Chaque microprocesseur qui sort voit son jeu d'instructions modifié ou/et augmenté d'un certain nombre d'instructions.
La programmation en assembleur permet d'entrevoir (pour ceux qui poussent leurs connaissances) les interactions entre les différents OS, le matériel et les applications.

L'assembleur permet de faire des choses qui sont interdites dans certains langages.
Par exemple, certains langages définissent des pointeurs sur un type donné (long, word, byte etc) et ne permettent pas d'accéder à une variable différente avec ce pointeur.

En assembleur, on manipule des valeurs, à nous de savoir de quel type il s'agit: entiers signés ou non, chaîne, flottant, pointeurs, adresses etc.

Et un des avantages de l'assembleur est incontestablement sa rapidité par rapport à des langages de haut niveau, car on peut rationaliser les instructions en asm souvent mieux qu'un compilateur, bien que certains soient très efficaces.

Pour reprendre, l'assembleur est un langage de programmation, alors ne dites pas tout de suite 'je vais écrire un OS en assembleur!'
Pour programmer en asm comme dans n'importe quel langage, il faut savoir ce que l'on doit faire, la programmation restant la transcription de la résolution du problème.
Il faut parfois passer beaucoup de temps de réflexion sur le problème pour après seulement l'écrire en asm.

Et puis écrire des programmes complets en assembleur reste une tache lourde qui nécessite à mon avis de souvent programmer en assembleur pour avoir certains réflexes et maintenir une connaissance suffisante du jeu d'instruction.




Voilà pour le premier tut qui est plus une approche qu'un vrai tutoriel.


Prochain tut : Rappel des bases 2, 10, et 16


A+
Denis


Haut
 Profil  
Répondre en citant le message  
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 1 message ] 

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages

Rechercher:
Aller à:  
cron

 


Powered by phpBB © 2008 phpBB Group | Traduction par: phpBB-fr.com
subSilver+ theme by Canver Software, sponsor Sanal Modifiye