Menu
Coddy logo textTech

Récapitulatif : Construire data.asm

Fait partie de la section Fondamentaux du Journey Assembly de Coddy. Leçon 30 sur 45.

challenge icon

Défi

Vous avez appris plusieurs façons de définir des données dans la section .data :

LeçonCe que vous avez appris
3.1La section .data, où placer les données
3.2db : définir un octet (1 octet)
3.3dw : définir un mot (2 octets)
3.4dd : définir un double mot (4 octets)
3.5dq : définir un quadruple mot (8 octets)
3.6Chaînes avec db : créer du texte
3.7Le 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 5000000000

Pourquoi 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 :

  1. Une chaîne appelée welcome ayant pour valeur 'Welcome!' suivie d’un retour à la ligne (0x0a)
  2. Une constante appelée welcomeLen qui calcule automatiquement la longueur à l’aide de $ - welcome
  3. Un octet appelé score ayant pour valeur 99
  4. Un mot appelé year ayant pour valeur 2025
  5. Un double mot appelé population ayant pour valeur 8500000
  6. Un quadruple mot appelé stars ayant 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
    syscall

Toutes les leçons de Fondamentaux

Entraînez-vous par vous-même : Playground Assembly