Menu
CoddyTech

Podsumowanie: budowanie data.asm

Część sekcji Podstawy ścieżki Assembly w Coddy. Lekcja 30 z 45.

challenge icon

Wyzwanie

Nauczyłeś się kilku sposobów definiowania danych w sekcji .data:

LekcjaCzego się nauczyłeś
3.1Sekcja .data, w której umieszcza się dane
3.2db: definiowanie bajtu (1 bajt)
3.3dw: definiowanie słowa (2 bajty)
3.4dd: definiowanie podwójnego słowa (4 bajty)
3.5dq: definiowanie poczwórnego słowa (8 bajtów)
3.6Ciągi znaków z db: tworzenie tekstu
3.7Symbol $: automatyczne obliczanie długości ciągów znaków

Teraz pora połączyć wszystko i utworzyć kompletny plik data.asm.

Co utworzysz w tym wyzwaniu:

Plik data.asm zawierający:

  • Ciąg znaków z automatycznym obliczaniem długości
  • Wartość bajtową
  • Wartość typu word
  • Wartość typu double word
  • Wartość typu quad word

Wszystko prawidłowo uporządkowane w sekcji .data.

Przykład kompletnego pliku data.asm:

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

Dlaczego to ważne:

W kolejnych rozdziałach będziesz używać plików data.asm takich jak ten, aby przechowywać dane potrzebne twoim programom. Plik main.asm dołączy plik data.asm i użyje zdefiniowanych przez ciebie etykiet oraz długości.

Wyzwanie

Utwórz kompletny plik data.asm zawierający:

  1. Ciąg znaków o nazwie welcome i wartości 'Welcome!', po której następuje znak nowej linii (0x0a)
  2. Stałą o nazwie welcomeLen, która automatycznie oblicza długość za pomocą $ - welcome
  3. Bajt o nazwie score i wartości 99
  4. Słowo o nazwie year i wartości 2025
  5. Podwójne słowo o nazwie population i wartości 8500000
  6. Poczwórne słowo o nazwie stars i wartości 100000000000

Wszystko w sekcji .data.

Spróbuj swoich sił

%include "data.asm"

section .text
    global _start

_start:
    ; Wypisz tekst powitalny
    mov rax, 1
    mov rdi, 1
    mov rsi, welcome
    mov rdx, welcomeLen
    syscall
    
    ; Zakończ program
    mov rax, 60
    mov rdi, 0
    syscall

Wszystkie lekcje w sekcji Podstawy

Poćwicz samodzielnie: Edytor online Assembly