|
| |
|
|
|
|
| |
Glossaire Assembleur |
|
| |
- Bit : Un bit est une donnée pouvant prendre soit la valeur 0 (assimilée à false, faux en anglais) ou 1 (true, vrai en anglais). C'est l'unité du système binaire (voir la remarque de l' hexadécimal ), un octet par exemple est un groupement de 8 bits.
- Compilateur : Programme traduisant un code source (fichier texte, pour l'assembleur : fichiers portant l'extension ".asm") en code machine, c'est à dire produisant un fichier binaire (ou fichier éxécutable", portant l'extension ".exe" ou ".com" sur les plate-formes Microsoft).
- Double-mot : Quatres octets = 2 doubles mots = 32 bits. Signé: valeurs de -2 147 483 648 (-2^31 = -2 147 millions) et +2 147 483 647 (2^31 -1), non-signé : entre 0 et +4 294 967 295 (quelques 4 294 millions).
- Flags (drapeaux) : Ceux sont des bits internes au processeur.
Consultez la Liste des drapeaux .
- Hexadécimal : Dans la notation des nombres actuelle, on utilise les chiffres arabes compris entre 0 et 9, on a donc 10 chiffres, et le chiffre le plus grand est 9 (10-1). On dit de ce système de notation qu'il est en base 10 ( décimal , déci = 10 en grec). Pour écrire 451 par exemple, on peut le décomposer comme 4*100 +5*10 +1*1 = 4*(10^2) +5*(10^1) + 1*(10^0).
Le système hexadécimal au contraire est en base 16 . Pour écrire 10 on utilise la lettre "a", 11 : "b", 12 : "c", 13 : "d", 14 : "e", et 15 : "f". Donc par exemple 20 (16*1 +4) s'écrira 14h. "h" est le suffixe des nombres hexadécimaux en assembleur, en Turbo Pascal on utilise le préfixe "$" ($14) et en C le préfixe "0x" (0x14). Pour convertir de l'hexadécimal en décimal, on procède à sa décomposition : 3DAh = 3*(16^2) +D*(16^1) +A*(16^0) = 3*256 +13*16 + 10*1 = 986.
Remarque: Le processeur central (CPU : Central Processor Unit) travaille uniquement en binaire (uniquement avec bits ), notation en base 2. Par exemple 9 s'écrira 1*8 +1 = 1*(2^3) +0*(2^2) +0*(2^1) +1*(2^0) = "1001b" ("b" étant le suffixe des nombres binaires). Même le coprocesseur a rithmétique qui calcule le cosinus et l'exposantiel travaille en binaire !
- Interruption : Une interruption est comme un petit programme stocké en mémoire qui est appelé plus ou moins régulièrement et qui a une tâche spécifique. Il y en a 256 au maximum, et les premières sont intégrés dans le BIOS (programme lancé au démarrage de l'ordinateur qui gère le matériel : disque dur, accès mémoire, ...) comme les interruptions de la carte vidéo ou le clavier. Certaines sont appelées à une fréquence constance : l'interruption 1Ch par exemple qui est un compteur qui incrémente (ajoute 1) une valeur 18.6 fois/seconde; d'autres sont appelées uniquement si on a besoin d'elle : l'interruption 09h du clavier est appelée à chaque pression ou relachement d'une touche.
- Mot : Deux octets = 16 bits. Signé : valeurs entre -32768 (2^15) et +32767 (2^15 -1). Non signé : entre 0 à +65535 (2^16 -1).
- Octet : Un octet est une suite de 8 bits. S'il est signé (+ ou -), il peut prendre une valeur comprise entre -128 et +127 (128 = 2 puissance (8-1) et 127 = 2 puissance (8-1) -1), car le premier bit est celui du signe (TRUE = "-") et donc la vale ur est en 7 bits. S'il n'est pas signé, il peut prendre une valeur comprise entre 0 et +255 (255 = 2^8 -1, "-1" car le zéro est une valeur à part entière !).
- Pile : La pile pourrait être comparée à une pile d'assiette, on entasse des assiettes (ouais bon, c'est une image) avec l'instruction "PUSH" puis on les enlêve avec l'instruction "POP". La hauteur de la pile est la valeur du registre [E]BP. On voir ce qu'il y a à l'étage X avec une instruction dans le style "MOV AX,[BP-4]", mais pas l'enlever, car si on enlève une assiette au milieu de la pile, la pile dégringole (= plantage du PC).
- Registre : Espace mémoire placé physiquement dans le coeur du processeur dans lequel sont stockés des valeurs. Les registres étaient au début codés sur 8 bits (un octet), ils étaient nommés ?L (où "?" peut être A,B,C ou D), puis ils sont passés en 16 bits (un mot) et deviennent ?X. Le truc magique est que si on modifie ?L, on modifie la "partie basse" du mot ?X, c'est à dire ?X est en faite composé d'un octet et de ?L. Puis avec l'arrivé du 386, on passe en 32 bits (double-mot), et les registres deviennent E?X, là aussi, si on modifie ?L ou ?X on modifie une partie de E?X.
Consultez la Liste des registres .
- Segment et Offset : Les adresses mémoires (emplacement des octets dans les barrettes de mémoire) sont définies par deux registres : Le segment (partie haute de l'adresse) et l'offset (partie basse de l'offset). On note l'adresse : "segment :[ offset ] " (":" est le séparateur, les crochets "[" et "]" ne sont pas obligatoires), exemple: "DS:[DI]". Avec le 386, les offsets sont passés en 32 bits pour accéder à plus de mémoire (plus de 16 Mo), les offsets avec le préfixe "E" sont apparus (ESI, EDI, ESP, EBP), et comme pours les registres 32 bits, les registres 16 bits, les offsets SI,DI,SP,BP en sont leur partie basse.
Consultez la Liste des registres .
|
|
|
[ home ] [ <- précédant ] [ suivant -> ] |
|
|
|
|
|
|
|
|
|