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ù placer les données |
| 3.2 | db : définir un octet (1 octet) |
| 3.3 | dw : définir un mot (2 octets) |
| 3.4 | dd : définir un double mot (4 octets) |
| 3.5 | dq : définir un quadruple mot (8 octets) |
| 3.6 | Chaînes avec db : créer du texte |
| 3.7 | Le symbole $ : calculer automatiquement la longueur des chaînes |
Il est maintenant temps de tout réunir et de créer un fichier data.asm complet.
Ce que vous allez créer dans ce défi :
Un fichier data.asm qui contient :
- Une chaîne avec calcul automatique de sa longueur
- Une valeur d’octet
- Une valeur de mot
- Une valeur de double mot
- Une valeur de quadruple mot
Le tout correctement organisé dans la section .data.
Exemple de <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 est-ce 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 fichier data.asm et utilisera les étiquettes 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 appelée
welcomeayant pour valeur 'Welcome!' suivie d’un retour à la ligne (0x0a) - Une constante appelée
welcomeLenqui calcule automatiquement la longueur à l’aide de$ - welcome - Un octet appelé
scoreayant pour valeur 99 - Un mot appelé
yearayant pour valeur 2025 - Un double mot appelé
populationayant pour valeur 8500000 - Un quadruple mot appelé
starsayant pour valeur 100000000000
Le tout dans la section .data.
Essayez vous-même
%include "data.asm"
section .text
global _start
_start:
; Afficher la chaîne welcome
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.asmEntraînez-vous par vous-même : Playground Assembly