Mikroişlemciler · Ön Bilgiler

Mikroişlemciler İçin Ön Bilgiler

Mikroişlemci programlama; sayı sistemlerini, sayısal mantığı, bilgisayar mimarisini, assembly dilini, bellek adreslemeyi, kesmeleri, yığına dayalı yürütmeyi, giriş/çıkışı ve temel elektroniği bir araya getirir.

Temel hazırlık

En sağlam hazırlık; ikili ve onaltılık sayılarla, Boole mantığıyla, programlamayla, CPU ile belleğin düzeniyle ve temel sayısal elektronikle uygulamaya dönük bir tanışıklıktır.

Sayılar · Mimari · Assembly

Temel ön bilgiler

Bu konular; 8086 programlama modeline, yazmaçlara ve pinlere, kesim:bağıl konum ile bellek erişimine, aritmetik ve mantık komutlarına, prosedürlere, yığına, kesmelere, G/Ç portlarına ve BIOS/DOS hizmetlerine zemin hazırlar.

İKİ

İkili sayı sistemi

Bitler · ikinin kuvvetleri · işaretsiz değerler

Mikroişlemciler veriyi ve komutları ikili bit örüntüleri olarak gösterir.

Teknik önemi

İkili aritmetik; yazmaçların, belleğin, işlem kodlarının, bayrakların ve sayısal mantığın temelidir.

  • Onluk ve ikili tabanlar arasında dönüşüm.
  • İkinin kuvvetlerini tanıma.
  • 8 ve 16 bitlik işaretsiz değerlerin aralıkları.

Bağlantılı konular: yazmaçlar, işlem kodları, maskeler, adresler, bayraklar.

HEX

Onaltılık sayı sistemi

16 tabanı · ikili değerin kısa yazımı

Onaltılık (hexadecimal) sistem, ikili değerleri kısa biçimde yazmanın bir yoludur.

Teknik önemi

8086 adresleri, makine kodu baytları, yazmaç değerleri ve bit maskeleri genellikle onaltılık yazılır.

  • Onluk↔onaltılık ve ikili↔onaltılık dönüşüm.
  • Bir onaltılık basamağın dört bite karşılık gelmesi.
  • Bayt ve sözcük değerlerini onaltılık okuma.

Bağlantılı konular: adresler, bellek dökümleri, işlem kodları, hata ayıklama.

İT

İşaretli sayılar ve ikiye tümleyen

Negatif tam sayılar · taşma

İşlemcilerin negatif tam sayıları ikili olarak kodlamanın bir yoluna ihtiyacı vardır.

Teknik önemi

İkiye tümleyen (two's complement) gösterim, aynı toplayıcı donanımının hem işaretli hem işaretsiz aritmetikte kullanılmasını sağlar.

  • İşaret biti ve işaretli değer aralıkları.
  • Negatif bir değerin ikiye tümleyenini bulma.
  • Elde (carry) ile işaretli taşmayı (overflow) ayırt etme.

Bağlantılı konular: ADD/SUB, işaret bayrağı (SF), taşma bayrağı (OF), koşullu atlamalar.

ASC

ASCII karakter kodları

Karakter · bayt · 30h–39h

Klavyeden okunan ve ekrana yazılan her karakter, bir baytlık ASCII koduyla taşınır.

Teknik önemi

Bir sayıyı ekrana yazmak ya da klavyeden okumak, rakam ile ASCII kodu arasında dönüşüm gerektirir. DOS ve BIOS hizmetleri karakterleri bu kodlarla alır ve verir.

  • Rakamlar: '0'–'9' = 30h–39h. Bir rakamın değeri, kodundan 30h çıkarılarak bulunur.
  • Büyük harfler 'A'–'Z' = 41h–5Ah, küçük harfler 'a'–'z' = 61h–7Ah. Aradaki fark 20h, yani yalnızca 5 numaralı bittir.
  • Denetim karakterleri: satır başı (CR) 0Dh, satır besleme (LF) 0Ah. Boşluk 20h, '$' ise 24h'dir.

Bağlantılı konular: INT 21h karakter hizmetleri, sayı okuma ve yazdırma yordamları, dizgiler, '$' ile biten DOS dizgileri.

MHz

Ölçü birimleri ve önekler

Frekans · periyot · KB ve MB

Saat hızları, komut süreleri ve bellek boyutları önekli birimlerle verilir.

Teknik önemi

Bir program parçasının süresini hesaplamak saat periyodunu, adres yolunun genişliğini yorumlamak ise ikili öneklerle bellek boyutunu bilmeyi gerektirir.

  • Periyot frekansın tersidir: T = 1/f. 5 MHz'lik saatte bir saat periyodu 200 ns'dir.
  • Zaman önekleri: 1 ms = 10⁻³ s, 1 µs = 10⁻⁶ s, 1 ns = 10⁻⁹ s.
  • Süre = saat turu sayısı × saat periyodu.
  • Bellekte ikili önekler kullanılır: 1 KB = 2¹⁰ = 1024 bayt, 1 MB = 2²⁰ bayt. n adres hattı 2ⁿ farklı adres verir; 20 hat 1 MB'lık adres uzayı demektir.

Bağlantılı konular: saat sinyali, komut tur sayıları, gecikme döngüleri, adres yolu genişliği, bellek haritası.

BM

Boole mantığı

AND · OR · XOR · NOT

Aritmetik ve kontrol devreleri Boole işlemlerinden kurulur.

Teknik önemi

Mantık komutları bu işlemleri assembly programlarına doğrudan sunar.

  • Temel doğruluk tabloları.
  • Bit maskeleme.
  • XOR ile bitleri tersine çevirme; bir yazmacı kendisiyle XOR'layarak sıfırlama.

Bağlantılı konular: maskeler, bayraklar, aygıt kontrolü, bit alanları.

SM

Sayısal mantığın temelleri

Kapılar · çoklayıcılar · flip-floplar

Bir CPU, ikili değerleri saklayan ve dönüştüren sayısal devrelerden oluşur.

Teknik önemi

Temel mantık kavramları; yazmaçları, ALU'ları, yolları ve kontrol sinyallerini anlamayı kolaylaştırır.

  • Birleşimsel ve ardışıl mantık arasındaki fark.
  • Kapılar, çoklayıcılar (multiplexer), çözücüler ve flip-floplar.
  • Yazmacın saklanan bir ikili durum olması.

Bağlantılı konular: ALU, yazmaç kümesi, komut çözücü, kontrol birimi.

Z

Tutucular ve üç durumlu tamponlar

Tutucu · tampon · yüksek empedans

Bir yola birden çok aygıt bağlandığında, yolu hangi aygıtın sürdüğünü ve bir değerin ne zaman yakalandığını bu yapı taşları belirler.

Teknik önemi

Adres ve verinin aynı pinlerden sırayla verildiği işlemcilerde adresin bir tutucuda yakalanması, veri yolunun da üç durumlu tamponlarla ayrılması gerekir.

  • Tutucu (latch), izin girişi etkinken girişini çıkışa geçirir; izin kalkınca son değeri saklar.
  • Üç durumlu çıkış 0 ve 1'in yanında yüksek empedans (Z) durumuna da geçebilir. Bu durumda aygıt yoldan ayrılmış gibidir.
  • Bir yolu aynı anda yalnızca bir aygıt sürmelidir. İki çıkışın aynı anda sürmesi yol çakışmasıdır.
  • Etkin düşük (active-low) sinyal 0 iken etkindir; adının sonundaki ' işaretiyle ya da üstüne çizilen çizgiyle gösterilir.

Bağlantılı konular: ALE ve adres kilitleri, veri alıcı-vericileri, RD' ve WR' sinyalleri, bellek bankaları.

PRG

Temel programlama

Değişkenler · döngüler · koşullar

Algoritmalardaki akış kontrolüne alışkın olunca assembly daha kolay öğrenilir.

Teknik önemi

Yüksek düzeyli programlama kavramları, düşük düzeyli komut dizilerine karşılık gelir.

  • Atama ve aritmetik ifadeler.
  • if/else yapılarını ve döngüleri adım adım izleme.
  • Diziler ve fonksiyonlar.

Bağlantılı konular: CMP/Jcc, döngüler, bellekteki değişkenler, prosedürler.

C

C programlama kavramları

Tipler · diziler · fonksiyonlar · bellek

C, yüksek düzeyli kod ile assembly arasında kullanışlı bir köprüdür.

Teknik önemi

İşlemciye ilişkin birçok kavram; C'deki değişkenler, işaretçiler, fonksiyon çağrıları ve veri boyutlarıyla ilişkilendirildiğinde daha anlaşılır olur.

  • Tam sayı tipleri ve diziler.
  • Temel işaretçi ve adres kavramları.
  • Kavramsal düzeyde fonksiyon çağrıları ve yerel değişkenler.

Bağlantılı konular: yığın çerçeveleri, çağırma kuralları (calling conventions), veri gösterimi.

BIT

Bit düzeyinde işlemler

Maskeler · kaydırma · döndürme

Bitlerle çalışmak, düşük düzeyli programlamanın temelidir.

Teknik önemi

8086, bit düzeyinde kontrol için özel mantık, kaydırma ve döndürme komutlarına sahiptir.

  • Maske oluşturma ve uygulama.
  • Tek tek bitleri sınama.
  • Mantıksal ve aritmetik kaydırma arasındaki kavramsal fark.

Bağlantılı konular: SHL/SHR, ROL/ROR, aygıt yazmaçları, bayraklar.

BMT

Bilgisayar mimarisinin temelleri

CPU · bellek · yollar

Mikroişlemci programlama, CPU'nun bellek ve G/Ç ile nasıl veri alışverişi yaptığını bilmeye dayanır.

Teknik önemi

Yazmaçlar, yollar, bellek ve kontrol sinyalleri, assembly kodunun gördüğü yürütme ortamını oluşturur.

  • CPU, bellek ve giriş/çıkışın (G/Ç) temel görevleri.
  • Kavramsal düzeyde adres, veri ve kontrol yolları.
  • Getir–çöz–yürüt döngüsü.

Bağlantılı konular: 8086 yol arayüzü, bellek erişimi, komut yürütme.

YAZ

Yazmaçlar

Genel amaçlı · kesim · indis · işaretçi

8086, adlandırılmış küçük bir yazmaç kümesini programların doğrudan kullanımına açar.

Teknik önemi

Assembly komutları çoğunlukla AX, BX, CX, DX yazmaçları ile kesim, indis ve işaretçi yazmaçları üzerinde çalışır.

  • Yazmaçların CPU içindeki küçük ve hızlı saklama alanları olması.
  • Genel amaçlı ve özel amaçlı görevlerin ayrımı.
  • 16 bitlik yazmaçlar ve uygun olanlarda 8 bitlik yüksek/düşük yarılar.

Bağlantılı konular: AX/AH/AL, BX, CX, DX, SP, BP, SI, DI, CS, DS, SS, ES.

BEL

Bellek adresleme

Adresler · baytlar · sözcükler

Assembly kodu, adresi açıkça belirtilen bellek gözlerini okur ve yazar.

Teknik önemi

Belleğin düzenini bilmek; değişkenler, diziler, işaretçiler ve komutlar için vazgeçilmezdir.

  • Bayt düzeyinde adreslenen bellek.
  • Kavramsal düzeyde little-endian gösterim.
  • Etkin adresi tanıma.

Bağlantılı konular: veri değişkenleri, diziler, işaretçiler, komut işlenenleri.

KES

8086'da kesimleme

Kesim:bağıl konum · fiziksel adres

8086, 20 bitlik fiziksel adresleri 16 bitlik kesim (segment) ve bağıl konum (offset) değerlerinden oluşturur.

Teknik önemi

Kesimleme, yazmaçları 16 bitlik olan ilk 8086'nın nasıl 1 MiB'a kadar belleği adresleyebildiğini açıklar.

  • Fiziksel adres = kesim × 16 + bağıl konum.
  • Örtüşen kesimler.
  • CS, DS, SS ve ES yazmaçlarının görevleri.

Bağlantılı konular: kod, veri, yığın ve ek kesimler, 20 bitlik adresleme.

ALU

Aritmetik ve bayraklar

ADD · SUB · CMP · durum bayrakları

Aritmetik komutlar hem hedefteki değeri hem de işlemcinin durum bayraklarını günceller.

Teknik önemi

Bayraklar karşılaştırmalarda, işaretli/işaretsiz kararlarda, döngülerde ve hata algılamada kullanılır.

  • Kavramsal düzeyde elde, sıfır, işaret ve taşma bayrakları.
  • CMP'nin çıkarma sonucunu saklamadan yalnız bayrakları güncellemesi.
  • Bayraklarla koşullu atlamalar arasındaki ilişki.

Bağlantılı konular: ADD, SUB, CMP, Jcc, işaretli ve işaretsiz karşılaştırmalar.

AK

Assembly'de akış kontrolü

Atlamalar · döngüler · etiketler

Assembly, kararları ve tekrarları etiketler ile dallanma komutları aracılığıyla ifade eder.

Teknik önemi

Yüksek düzeyli kontrol yapıları, derlendiğinde karşılaştırmalara ve atlamalara dönüşür.

  • Koşullu ve koşulsuz atlamaları adım adım izleme.
  • Etiketlerin dallanma hedefi olarak kullanılması.
  • Basit if/while mantığını düşük düzeyli adımlara dönüştürme.

Bağlantılı konular: JMP, JE/JZ, JNE/JNZ, işaretli/işaretsiz koşullu atlamalar.

YIĞ

Yığının temelleri

PUSH · POP · SP · LIFO

Yığın; geçici saklama, prosedürler, dönüş adresleri ve kesmeler için kullanılır.

Teknik önemi

Yığının düzenli kullanımı, prosedür çağrılarının ve kesme işlemenin doğru çalışması için temeldir.

  • LIFO (son giren ilk çıkar) sırası.
  • Kavramsal düzeyde PUSH ve POP.
  • 8086'da yığının durumunu tutan SP ve SS yazmaçları.

Bağlantılı konular: prosedürler, dönüş adresleri, parametreler, kesmeler.

PROC

Prosedürler ve çağrılar

CALL · RET · parametreler

Prosedürler, assembly programlarını yeniden kullanılabilir bloklara ayırır.

Teknik önemi

CALL ve RET, dönüş bilgisini korumak için yığına dayanır.

  • CALL'ın dönüş adresini yığına itmesi.
  • RET ile çağıran koda geri dönülmesi.
  • Kavramsal düzeyde yazmaçla ve yığınla parametre geçirme.

Bağlantılı konular: modülerlik, yığın, çağırma kuralları.

INT

Kesmeler

Donanım · yazılım · vektör tablosu

Kesmeler, donanım ya da yazılım olaylarına karşılık denetimi bir hizmet yordamına aktarır.

Teknik önemi

BIOS/DOS hizmetleri, zamanlayıcılar, klavyeler ve aygıtlarla etkileşim kesmelere dayanır.

  • Donanım ve yazılım kesmelerinin ayrımı.
  • Kesme vektörü kavramı.
  • İşlemci durumunun saklanıp geri yüklenmesi gerekliliği.

Bağlantılı konular: INT komutu, kesme vektör tablosu (IVT), kesme hizmet yordamı (ISR), BIOS/DOS hizmetleri.

G/Ç

Giriş/çıkış

Portlar · aygıtlar · IN/OUT

Mikroişlemciler çevre birimleriyle açık G/Ç mekanizmaları üzerinden haberleşir.

Teknik önemi

Port eşlemeli ve bellek eşlemeli G/Ç, yazılımdaki komutları donanım aygıtlarına bağlar.

  • Kavramsal düzeyde aygıt yazmaçları.
  • x86'da IN ve OUT komutlarının amacı.
  • Yoklamalı (polling) ve kesmeli G/Ç.

Bağlantılı konular: portlar, çevre birimleri, klavyeler, ekranlar, denetleyiciler.

ELK

Temel elektronik

Gerilim · sinyaller · zamanlama

Mikroişlemciler yalnız soyut komut makineleri değil, aynı zamanda elektrikle çalışan sayısal sistemlerdir.

Teknik önemi

Temel sinyal ve zamanlama kavramları; saat sinyalini, yolları, pinleri ve arabağlantıyı açıklamaya yardımcı olur.

  • Kavramsal düzeyde ikili gerilim düzeyleri.
  • Saat sinyalleri.
  • Giriş/çıkış yönü ve sinyal zamanlaması.

Bağlantılı konular: saat, sıfırlama (RESET), yol zamanlaması, sayısal arayüzler.

ARÇ

Assembly araçları

Assembler · bağlayıcı · hata ayıklayıcı

Düşük düzeyli programlama, simgesel assembly kodunu çalıştırılabilir makine koduna dönüştüren bir araç zinciri gerektirir.

Teknik önemi

Araç zincirinin aşamalarını bilmek; söz dizimi, sembol ve çalışma zamanı hatalarının kaynağını bulmayı kolaylaştırır.

  • Assembler ile bağlayıcının (linker) görevleri.
  • Basit bir bellek/yazmaç dökümünü okuma.
  • Kavramsal düzeyde tek adım çalıştırma ve kesme noktaları.

Bağlantılı konular: MASM/TASM/NASM tarzı çalışma düzeni, bağlayıcı, hata ayıklayıcı.

MK

Makine kodunun temelleri

İşlem kodları · işlenenler · kodlama

Assembly komutları, kodlanmış makine komutlarının simgesel gösterimidir.

Teknik önemi

Komut kodlama; işlenenlerin, adresleme modlarının ve komut boyutlarının neden önemli olduğunu açıklar.

  • İşlem kodu (opcode) ile işlenen (operand) arasındaki fark.
  • Komutların bellekte bayt kapladığı.
  • Adresleme modunun kodlamayı etkilediği.

Bağlantılı konular: makine kodu, tersine çevirme (disassembly), komut boyutu.

BUS

Yol ve zamanlamanın temelleri

Adres · veri · kontrol

İşlemcinin dış dünyayla haberleşmesi, birbirine uyumlu adres, veri ve kontrol sinyalleriyle gerçekleşir.

Teknik önemi

Yol zamanlaması, bellek ve çevre birimlerinin ne zaman okuyacağını, yazacağını ya da yanıt vereceğini nasıl bildiğini açıklar.

  • Adres bilgisi ile veri bilgisinin ayrımı.
  • Kavramsal düzeyde okuma/yazma kontrol sinyalleri.
  • Genel hatlarıyla bekleme durumu ve zamanlama.

Bağlantılı konular: bellek döngüleri, G/Ç döngüleri, kontrol pinleri, arabağlantı.

Arama ve süzgece uyan konu yok.