Menu
Coddy logo textTech

Özet: data.asm Dosyasını Derleme

Coddy'nin Assembly Journey'sinin Temel Bilgiler bölümünün bir parçası. Ders 30 / 45.

challenge icon

Görev

.data bölümünde veri tanımlamanın birkaç yolunu öğrendiniz:

DersÖğrendikleriniz
3.1Verilerin bulunduğu .data bölümü
3.2db: Bayt tanımlama (1 bayt)
3.3dw: Word tanımlama (2 bayt)
3.4dd: Double Word tanımlama (4 bayt)
3.5dq: Quad Word tanımlama (8 bayt)
3.6db ile dizeler: metin oluşturma
3.7$ sembolü: dize uzunluklarını otomatik olarak hesaplama

Şimdi her şeyi bir araya getirip eksiksiz bir data.asm dosyası oluşturma zamanı.

Bu görevde oluşturacağınız şey:

Şunları içeren bir data.asm dosyası:

  • Otomatik uzunluk hesaplamalı bir dize
  • Bir bayt değeri
  • Bir word değeri
  • Bir double word değeri
  • Bir quad word değeri

Tümü .data bölümünde düzgün şekilde düzenlenmiş olacak.

Eksiksiz bir <strong>data.asm</strong> ö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 5000000000

Bu neden önemli:

Sonraki bölümlerde, programlarınızın ihtiyaç duyduğu verileri depolamak için bunun gibi data.asm dosyalarını kullanacaksınız. main.asm dosyası data.asm dosyanızı içerecek ve tanımladığınız etiketleri ve uzunlukları kullanacak.

Görev

Aşağıdakileri içeren eksiksiz bir data.asm dosyası oluşturun:

  1. Değeri, ardından yeni satır (0x0a) gelen 'Welcome!' olan welcome adlı bir dize
  2. welcomeLen kullanarak uzunluğu otomatik olarak hesaplayan $ - welcome adlı bir sabit
  3. Değeri 99 olan score adlı bir bayt
  4. Değeri 2025 olan year adlı bir word
  5. Değeri 8500000 olan population adlı bir double word
  6. Değeri 100000000000 olan stars adlı bir quad word

Tümü .data bölümünün içinde olmalı.

Kendin dene

%include "data.asm"

section .text
    global _start

_start:
    ; welcome dizesini yazdır
    mov rax, 1
    mov rdi, 1
    mov rsi, welcome
    mov rdx, welcomeLen
    syscall
    
    ; Çıkış
    mov rax, 60
    mov rdi, 0
    syscall

Temel Bilgiler bölümündeki tüm dersler

Kendi başına pratik yap: Assembly playground