Menu
Coddy logo textTech

Yazmaçlar vs Bellek

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

Artık bir bilgisayarın içinde verilerin bulunabileceği iki yer hakkında bilgi edindiniz:

  • Yazmaçlar (Registers) — CPU'nun içindeki küçük depolama kutuları
  • Bellek (RAM) — CPU'nun dışındaki numaralandırılmış yuvalardan oluşan devasa bir ızgara

Peki neden iki yer var? İşlemci (CPU) neden doğrudan bellekle çalışamıyor?

Cevap hızdır. Yazmaçlar son derece hızlıdır çünkü CPU'nun içindedirler. Bellek daha yavaştır çünkü dışarıdadır. CPU bir yazmaca tek bir döngüde erişebilir, ancak belleğe erişmek çok daha uzun sürer.

Yan yana karşılaştırma:

ÖzellikYazmaçlar (Registers)Bellek (RAM)
Konumİşlemci (CPU) içindeİşlemci (CPU) dışında
HızSon derece hızlı (1 döngü)Daha yavaş (birçok döngü)
Depolama yuvası sayısıÇok az (x86-64 üzerinde 16-32 adet)Milyonlarca veya milyarlarca
Her yuvanın boyutu8 bayt (64 bit)1 bayt
Erişim yöntemiİsim ile (rax, rbx, rcx...)Adres ile (1000, msg, buffer)
Uçucu mu? (Volatile)Evet (güç kesildiğinde kaybolur)Evet (güç kesildiğinde kaybolur)

Assembly'deki en önemli kural:

İşlemci (CPU), bellekteki verilerle doğrudan çalışamaz. Veriler önce kaydedicilere (register) yüklenmelidir.

Bu isteğe bağlı değildir. İşlemcinin (CPU) tasarım şekli budur. Her toplama, her karşılaştırma, her veri taşıma işlemi bir kaydediciden (register) geçmelidir.

Sürekli kullanacağınız üç adımlı model:

AdımNe olurÖrnek
1. YÜKLE (LOAD)Veriyi bellekten bir kaydediciye (register) kopyalayınmov rax, [count]
2. İŞLE (WORK)Kaydedici ile bir işlem yapınadd rax, 5
3. KAYDET (STORE)Sonucu tekrar belleğe kopyalayın (gerekirse)mov [result], rax

Bu kuralı unutursanız ne olur?

Bellekte bulunan iki sayıyı toplamaya çalışırsanız, assembler size bir hata verecektir. CPU bunu basitçe yapamaz. Önce onları yazmaçlara (registers) yüklemelisiniz.

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