Podsumowanie: budowanie data.asm
Część sekcji Podstawy ścieżki Assembly w Coddy. Lekcja 30 z 45.
Wyzwanie
Opanowałeś(-aś) już kilka sposobów definiowania danych w sekcji .data:
| Lekcja | Czego się nauczyłeś(-aś) |
|---|---|
| 3.1 | Sekcja .data, w której umieszcza się dane |
| 3.2 | db: definiowanie bajtu (1 bajt) |
| 3.3 | dw: definiowanie słowa (2 bajty) |
| 3.4 | dd: definiowanie podwójnego słowa (4 bajty) |
| 3.5 | dq: definiowanie poczwórnego słowa (8 bajtów) |
| 3.6 | Łańcuchy znaków z db: tworzenie tekstu |
| 3.7 | Symbol $: 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 5000000000Dlaczego 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:
- Łańcuch znaków o nazwie
welcomei wartości 'Welcome!', po którym następuje znak nowej linii (0x0a) - Stałą o nazwie
welcomeLen, która automatycznie oblicza długość za pomocą$ - welcome - Bajt o nazwie
scorei wartości 99 - Słowo o nazwie
yeari wartości 2025 - Podwójne słowo o nazwie
populationi wartości 8500000 - Poczwórne słowo o nazwie
starsi 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
syscallWszystkie lekcje w sekcji Podstawy
1Maszyna
Czym jest CPUPamięćRejestry a pamięćJak działają instrukcjeWzorzec dwóch plikówArchitektura x86-644Definiowanie danych
Sekcja .datadb - definiowanie bajtudw - definiowanie słowadd - definiowanie podwójnego słowadq - definiowanie poczwórnego słowaCiągi znaków z dbSymbol $Podsumowanie: budowanie data.asm2Systemy liczbowe
Dlaczego system binarny?Liczby binarneZamiana z systemu dziesiętnego na binarnyDlaczego system szesnastkowy?Zamiana z systemu szesnastkowego na dziesiętnyZamiana z systemu dziesiętnego na szesnastkowyASCII i system szesnastkowy5Wywołanie systemowe zakończenia
Czym jest syscall?Wywołanie systemowe zakończenia (60)Kody zakończeniaPodsumowanie: prawidłowe zakończeniePoćwicz samodzielnie: Edytor online Assembly