Menu
Coddy logo textTech

.data Bölümü

Coddy'nin Assembly Journey'sinin Temel Bilgiler 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?

Yanıt .data bölümü. Bellekte kendi verilerinizi oluşturduğunuz yer burasıdır.

.data bölümü nedir?

.data bölümü, programınız çalışmadan önce bellekte depolanacak 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 ihtiyacınız var:

.data bölümü olmadan.data bölümüyle
Üzerinde çalışacağınız hiçbir veri olmazSayılar, dizeler ve değişkenler oluşturabilirsiniz
Bellek adresleri bilinmezmyNumber veya message gibi etiketleri kullanabilirsiniz
Kodunuzu test edemezsinizOluşturduğunuz verileri yükleyebilir ve depolayabilirsiniz

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ındaki kodu şunları yapacak şekilde yazın:

  1. .data bölümünü oluşturun
  2. Değeri 5 olan count adlı bir bayt 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.

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

Kendi başına pratik yap: Assembly playground