Récapitulatif : Construire data.asm
Fait partie de la section Fondamentaux du Journey Assembly de Coddy — leçon 30 sur 45.
Défi
Vous avez appris plusieurs façons de définir des données dans la section .data :
| Leçon | Ce que vous avez appris |
|---|---|
| 3.1 | La section .data — où vont les données |
| 3.2 | db — Define Byte (1 octet) |
| 3.3 | dw — Define Word (2 octets) |
| 3.4 | dd — Define Double Word (4 octets) |
| 3.5 | dq — Define Quad Word (8 octets) |
| 3.6 | Les chaînes de caractères avec db — créer du texte |
| 3.7 | Le symbole $ — calculer automatiquement la longueur des chaînes |
Il est maintenant temps de tout mettre ensemble et de construire un fichier data.asm complet.
Ce que vous allez créer dans ce défi :
Un fichier data.asm qui contient :
- Une chaîne de caractères avec calcul automatique de la longueur
- Une valeur d'un octet (byte)
- Une valeur d'un mot (word)
- Une valeur d'un double mot (double word)
- Une valeur d'un quadruple mot (quad word)
Le tout correctement organisé dans la section .data.
Exemple d'un fichier <strong>data.asm</strong> complet :
section .data
; String with automatic length
msg db 'Hello', 0x0a
msgLen equ $ - msg
; Numbers of different sizes
smallNum db 100
mediumNum dw 5000
largeNum dd 100000
veryLarge dq 5000000000Pourquoi c'est important :
Dans les prochains chapitres, vous utiliserez des fichiers data.asm comme celui-ci pour stocker les données dont vos programmes ont besoin. Le fichier main.asm inclura votre data.asm et utilisera les étiquettes (labels) et les longueurs que vous avez définies.
Défi
Créez un fichier data.asm complet avec les éléments suivants :
- Une chaîne de caractères appelée
welcomeavec la valeur 'Welcome!' suivie d'un saut de ligne (0x0a) - Une constante appelée
welcomeLenqui calcule automatiquement la longueur en utilisant$ - welcome - Un octet (byte) appelé
scoreavec la valeur 99 - Un mot (word) appelé
yearavec la valeur 2025 - Un double mot (double word) appelé
populationavec la valeur 8500000 - Un quadruple mot (quad word) appelé
starsavec la valeur 100000000000
Le tout à l'intérieur de la section .data.
Essayez vous-même
%include "data.asm"
section .text
global _start
_start:
; Afficher la chaîne de bienvenue
mov rax, 1
mov rdi, 1
mov rsi, welcome
mov rdx, welcomeLen
syscall
; Quitter
mov rax, 60
mov rdi, 0
syscallToutes 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-644Définition des données
La section .datadb - Définir un octetdw - Définir un motdd - Définir un double motdq - Définir un quadruple motChaînes de caractères avec dbLe symbole $Récapitulatif : Construire data.asm