Podsumowanie: budowanie data.asm
Część sekcji Podstawy ścieżki Assembly w Coddy. Lekcja 30 z 45.
Wyzwanie
Nauczyłeś się kilku sposobów definiowania danych w sekcji .data:
| Lekcja | Czego się nauczyłeś |
|---|---|
| 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 | Ciągi znaków z db: tworzenie tekstu |
| 3.7 | Symbol $: 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 5000000000Dlaczego 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:
- Ciąg znaków o nazwie
welcomei wartości 'Welcome!', po której 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