Menu
Coddy logo textTech

Podsumowanie: budowanie data.asm

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

challenge icon

Wyzwanie

Opanowałeś(-aś) już kilka sposobów definiowania danych w sekcji .data:

LekcjaCzego się nauczyłeś(-aś)
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.6Łańcuchy znaków z db: tworzenie tekstu
3.7Symbol $: automatyczne obliczanie długości łańcucha znaków

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

Co utworzysz w tym wyzwaniu:

Plik data.asm zawierający:

  • Łańcuch znaków z automatycznym obliczaniem długości
  • Wartość bajtową
  • Wartość słowa
  • Wartość podwójnego słowa
  • Wartość poczwórnego słowa

Wszystko poprawnie zorganizowane w sekcji .data.

Przykład kompletnego pliku <strong>data.asm</strong>:

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ć takich plików data.asm do przechowywania danych potrzebnych programom. Plik main.asm będzie dołączać plik data.asm i używać zdefiniowanych przez ciebie etykiet oraz długości.

Wyzwanie

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

  1. Łańcuch znaków o nazwie welcome i wartości 'Welcome!', po którym 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