ASCII & Hex
Fait partie de la section Fondamentaux du Journey Assembly de Coddy — leçon 13 sur 45.
Les ordinateurs ne comprennent que les nombres. Alors, comment stockent-ils des lettres comme 'A', 'b' ou '?' ?
La réponse est ASCII (American Standard Code for Information Interchange). ASCII est une table qui attribue un nombre à chaque caractère.
Comment fonctionne l'ASCII :
| Caractère | Nombre ASCII (décimal) | Nombre ASCII (hex) |
|---|---|---|
| 'A' | 65 | 0x41 |
| 'B' | 66 | 0x42 |
| 'C' | 67 | 0x43 |
| 'a' | 97 | 0x61 |
| 'b' | 98 | 0x62 |
| '0' | 48 | 0x30 |
| '1' | 49 | 0x31 |
| ' ' (espace) | 32 | 0x20 |
| '\n' (saut de ligne) | 10 | 0x0A |
| '\0' (nul) | 0 | 0x00 |
Valeurs ASCII importantes à mémoriser pour l'assembleur :
| Caractère | Hex | Pourquoi vous en avez besoin |
|---|---|---|
| 'A' | 0x41 | Les lettres majuscules commencent ici |
| 'a' | 0x61 | Les lettres minuscules commencent ici |
| '0' | 0x30 | Les chiffres commencent ici |
| Espace | 0x20 | Séparation des mots |
Saut de ligne (\n) | 0x0A | Passage à la ligne suivante |
Nul (\0) | 0x00 | Marqueur de fin de chaîne |
Remarquez le modèle :
| Modèle | Exemple |
|---|---|
| Les majuscules A-Z sont consécutives | 'A'=65, 'B'=66, 'C'=67... |
| Les minuscules a-z sont consécutives | 'a'=97, 'b'=98, 'c'=99... |
| Les chiffres 0-9 sont consécutifs | '0'=48, '1'=49, '2'=50... |
| Minuscule = majuscule + 32 | 'a' (97) = 'A' (65) + 32 |
Comment une chaîne de caractères est stockée en mémoire :
Le mot « Hi » avec un saut de ligne est stocké comme suit :
| Caractère | Hex | Binaire |
|---|---|---|
| 'H' | 0x48 | 01001000 |
| 'i' | 0x69 | 01101001 |
| '\n' | 0x0A | 00001010 |
En assembleur, on écrit cela ainsi : db 'Hi', 0x0A
Pourquoi vous en avez besoin pour l'assembleur :
Lorsque vous définissez une chaîne de caractères dans data.asm, vous stockez des codes ASCII en mémoire. Lorsque vous affichez une chaîne de caractères, le système d'exploitation lit ces codes ASCII et affiche les caractères correspondants.
Essayez vous-même
Cette leçon ne comprend pas de défi de code.
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Fondamentaux
1La Machine
Qu'est-ce qu'un CPULa mémoireRegistres vs MémoireFonctionnement des instructionsLe modèle à deux fichiersL'architecture x86-642Systèmes de numération
Pourquoi le binaire ?Nombres binairesDécimal vers binairePourquoi l'hexadécimal ?Hexadécimal vers décimalDécimal vers hexadécimalASCII & Hex