Menu
Coddy logo textTech

.data Bölümü

Coddy'nin Assembly Journey'sinin Temeller bölümünün bir parçası — ders 23 / 45.

Bölüm 2'de, bellekten değerler yüklediniz ve belleğe değerler kaydettiniz. Peki bu bellek nereden geldi? num1, num2 ve result değerlerini kim oluşturdu?

Cevap .data bölümüdür. Burası, bellekte kendi verilerinizi oluşturduğunuz yerdir.

.data bölümü nedir?

.data bölümü, programınız çalışmadan önce bellekte saklanacak verileri tanımladığınız assembly programınızın bir parçasıdır.

Sözdizimi:

section .data
    ; Veri tanımlamalarınız buraya gelir

Neden buna ihtiyaç duyarsınız:

.data bölümü olmadan.data bölümü ile
Üzerinde çalışacak veriniz olmazSayılar, dizeler ve değişkenler oluşturabilirsiniz
Bellek adresleri bilinmezmyNumber veya message gibi etiketler kullanabilirsiniz
Kodunuzu test edemezsinizOluşturduğunuz verileri yükleyebilir ve saklayabilirsiniz

Basit bir örnek:

section .data
    age db 25           ; 25 değerine sahip "age" adında bir bayt oluştur
    price dw 1000       ; 1000 değerine sahip "price" adında bir word oluştur
    name db 'Bob'       ; B, o, b harflerinden oluşan "name" adında bir dize oluştur

Dosyalarınızdaki yeri:

Bölüm 0'daki iki dosya desenini hatırlayın:

Dosyaİçerik
data.asmveri tanımlamalarınızın bulunduğu section .data
main.asm%include "data.asm" ve ardından kodunuzun bulunduğu section .text

Programınız çalıştığında ne olur:

  1. İşletim sistemi programınızı belleğe yükler
  2. .data bölümünü okur ve verilerinizi belirli bellek adreslerine yerleştirir
  1. Etiketleriniz (age, price, name) adreslere dönüşür
  2. Kodunuz artık [age], [price], [name] kullanarak bu adreslere erişebilir

Önemli kurallar:

KuralAçıklama
Program başına bir .data bölümüTüm verilerinizi tek bir yere koyun
Etiketler benzersiz olmalıdırİki tane age etiketine sahip olamazsınız
Veriler kodunuz çalışmadan önce oluşturulur_start başladığında kullanıma hazırdır

Gelecek derslerde, db, dw, dd ve dq kullanarak farklı veri türlerini nasıl tanımlayacağınızı öğreneceksiniz.

challenge icon

Görev

data.asm dosyasına şu işlemleri yapacak kodu yazın:

  1. .data bölümünü oluşturun
  2. 5 değerine sahip count adında bir byte oluşturun

Kendin dene

%include "data.asm"

section .text
    global _start

_start:
    ; count değerini al içine yükle
    mov al, [count]
    
    ; Yazdırmak için kaydet
    mov r12, rax
    
    ; ASCII'ye dönüştür ve yazdır (sadece 0-9)
    add al, 48
    mov [digit], al
    
    mov rax, 1
    mov rdi, 1
    mov rsi, digit
    mov rdx, 1
    syscall
    
    ; Çıkış
    mov rax, 60
    mov rdi, 0
    syscall

section .bss
    digit resb 1
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

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