Özet: data.asm Dosyasını Derleme
Coddy'nin Assembly Journey'sinin Temel Bilgiler bölümünün bir parçası. Ders 30 / 45.
Görev
.data bölümünde verileri tanımlamanın birkaç yolunu öğrendin:
| Ders | Öğrendiklerin |
|---|---|
| 3.1 | Verilerin bulunduğu .data bölümü |
| 3.2 | db: Bayt tanımlama (1 bayt) |
| 3.3 | dw: Word tanımlama (2 bayt) |
| 3.4 | dd: Double word tanımlama (4 bayt) |
| 3.5 | dq: Quad word tanımlama (8 bayt) |
| 3.6 | db ile dizeler: metin oluşturma |
| 3.7 | $ simgesi: dize uzunluklarını otomatik hesaplama |
Şimdi her şeyi bir araya getirip eksiksiz bir data.asm dosyası oluşturma zamanı.
Bu görevde oluşturacakların:
Şunları içeren bir data.asm dosyası:
- Uzunluğu otomatik hesaplanan bir dize
- Bir bayt değeri
- Bir word değeri
- Bir double word değeri
- Bir quad word değeri
Hepsi .data bölümünde düzgün bir şekilde düzenlenmiş olacak.
Eksiksiz bir data.asm örneği:
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 5000000000Bu neden önemli:
Sonraki bölümlerde, programlarının ihtiyaç duyduğu verileri depolamak için bunun gibi data.asm dosyalarını kullanacaksın. main.asm dosyası, data.asm dosyanı içerecek ve tanımladığın etiketleri ve uzunlukları kullanacak.
Görev
Aşağıdakileri içeren eksiksiz bir data.asm dosyası oluştur:
welcomeadlı, değeri 'Welcome!' olan ve ardından yeni satır (0x0a) gelen bir dize$ - welcomekullanarak uzunluğu otomatik hesaplayan,welcomeLenadlı bir sabit- Değeri 99 olan,
scoreadlı bir bayt - Değeri 2025 olan,
yearadlı bir word - Değeri 8500000 olan,
populationadlı bir double word - Değeri 100000000000 olan,
starsadlı bir quad word
Hepsi .data bölümünün içinde olmalı.
Kendin dene
%include "data.asm"
section .text
global _start
_start:
; Karşılama metnini yazdır
mov rax, 1
mov rdi, 1
mov rsi, welcome
mov rdx, welcomeLen
syscall
; Çıkış
mov rax, 60
mov rdi, 0
syscallTemel Bilgiler bölümündeki tüm dersler
4Veri Tanımlama
.data Bölümüdb - Byte Tanımlamadw - Word Tanımlamadd - Double Word Tanımlamadq - Quad Word Tanımlamadb ile Stringler$ SembolüÖzet: data.asm Dosyasını DerlemeKendi başına pratik yap: Assembly playground