Menu
Coddy logo textTech

Özet: data.asm Dosyasını Derleme

Coddy'nin Assembly Journey'sinin Temeller 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.1.data bölümü — verilerin gittiği yer
3.2db — Define Byte (1 bayt)
3.3dw — Define Word (2 bayt)
3.4dd — Define Double Word (4 bayt)
3.5dq — Define Quad Word (8 bayt)
3.6db ile dizeler — metin oluşturma
3.7$ sembolü — dize uzunluklarını otomatik hesaplama

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

Bu görevde oluşturacaklarınız:

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

  • Otomatik uzunluk hesaplamalı bir dize
  • Bir bayt (byte) 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 organize edilmiş olmalıdır.

Tamamlanmış 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ı dahil edecek ve tanımladığınız etiketleri ve uzunlukları kullanacaktır.

Görev

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

  1. Değeri 'Welcome!' olan ve ardından yeni satır (0x0a) gelen welcome adlı bir dize
  2. $ - welcome kullanarak uzunluğu otomatik olarak hesaplayan welcomeLen adlı bir sabit
  3. Değeri 99 olan score adlı bir bayt (byte)
  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

Hepsi .data bölümünün içinde olmalıdır.

Kendin dene

%include "data.asm"

section .text
    global _start

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

Temeller bölümündeki tüm dersler