Menu
Coddy logo textTech

İki Dosya Deseni

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

Bu kurs boyunca, her programı iki ayrı dosya kullanarak yazacaksınız:

DosyaAmaç
data.asmTüm verileri (dizeler, sayılar, değişkenler) saklar
main.asmTüm kodları (talimatlar, mantık, akış) saklar

Bu, assembler tarafından zorunlu tutulmaz. Her şeyi tek bir dosyaya koyabilirsiniz. Ancak kodu veriden ayırmak, programlarınızı daha temiz, okunması daha kolay ve hata ayıklaması daha kolay hale getirir.

Neden iki dosya?

  • Organizasyon — Veri ve kodun farklı amaçları vardır. Onları ayrı tutmak net düşünmenize yardımcı olur.
  • Yeniden Kullanılabilirlik — Aynı data.asm dosyasını farklı main.asm dosyalarıyla kullanabilirsiniz.
  • Okunabilirlik — Kodunuzu bulmak için asla uzun dizeler arasında kaydırma yapmak zorunda kalmazsınız.
  • Sektör uygulaması — Gerçek projeler kod ve veriyi birbirinden ayırır (genellikle daha karmaşık yollarla olsa da).

Nasıl çalışır:

main.asm dosyası, %include yönergesini kullanarak data.asm dosyasını dahil eder. Bu, derleyiciye (assembler) şunu söyler: "derlemeden hemen önce data.asm dosyasının tüm içeriğini tam buraya yerleştir."

Yan yana iki dosya:

data.asmmain.asm
section .data%include "data.asm"
(değişkenler buraya gelir)section .text
 global _start
 _start:
 (komutlar buraya gelir)

Her bir bölümün ne yaptığı:

BölümAmaçHangi dosya?
section .dataProgram çalıştığında bellekte bulunan verileri tutardata.asm
section .textYürütülebilir talimatları (kod) tutarmain.asm
global _startGiriş noktasını bağlayıcı (linker) için görünür kılarmain.asm
_start:Program yürütülmesinin başladığı etiketmain.asm

Şu anda section .data, section .text, global _start veya _start: kısımlarını ezberlemenize gerek yok. Bu komutların her birini ilerleyen derslerde ayrıntılı olarak ele alacağız. Şimdilik sadece büyük resme bakın ve iki dosyanın yapısını anlayın.

Kendin dene

Bu ders bir kod alıştırması içermiyor.

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