İki Dosya Deseni
Coddy'nin Assembly Journey'sinin Temel Bilgiler bölümünün bir parçası. Ders 5 / 45.
Bu kurs boyunca her programı iki ayrı dosya kullanarak yazacaksın:
| Dosya | Amaç |
|---|---|
data.asm | Tüm verileri (dizeler, sayılar, değişkenler) depolar |
main.asm | Tüm kodu (talimatlar, mantık, akış) depolar |
Bu, assembler tarafından zorunlu kılınmaz. Her şeyi tek bir dosyaya koyabilirsin. Ancak kodu verilerden ayırmak, programlarını daha düzenli, okunması ve hatalarının ayıklanması daha kolay hâle getirir.
Neden iki dosya?
- Düzen: Verilerin ve kodun farklı amaçları vardır. Bunları ayrı tutmak, net düşünmene yardımcı olur.
- Yeniden kullanılabilirlik: Aynı
data.asmdosyasını farklımain.asmdosyalarıyla kullanabilirsin.
- Okunabilirlik: Kodunuzu bulmak için uzun dizeler arasında asla kaydırma yapmanız gerekmez.
- Sektör uygulaması: Gerçek projeler kodu ve verileri birbirinden ayırır (ancak bunu genellikle daha karmaşık şekillerde yaparlar).
Nasıl çalışır:
main.asm dosyası, %include yönergesini kullanarak data.asm dosyasını içerir. Bu, assembler'a şunu söyler: "data.asm dosyasının tüm içeriğini derlemeden önce tam buraya ekle."
İki dosya yan yana:
| data.asm | main.asm |
|---|---|
section .data | %include "data.asm" |
| (değişkenler buraya gelir) | section .text |
global _start | |
_start: | |
| (talimatlar buraya gelir) |
Her bölümün yaptığı:
| Bölüm | Amaç | Hangi dosya? |
|---|---|---|
section .data | Program çalıştığında bellekte bulunan verileri tutar | data.asm |
section .text | Yürütülebilir talimatları (kodu) tutar | main.asm |
global _start | Giriş noktasını bağlayıcıya görünür kılar | main.asm |
_start: | Program yürütmesinin başladığı etiket | main.asm |
Şu anda
section .data,section .text,global _startveya_start:komutlarını ezberlemen gerekmiyor. Bu komutların her birini sonraki derslerde ayrıntılı olarak ele alacağız. Şimdilik yalnızca genel tabloya bak ve iki dosyanın yapısını anlamaya çalış.
Kendin dene
Bu ders bir kod alıştırması içermiyor.
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