Binary / Decimal / Hexadecimal Dönüştürücü
Bir değer gir, anında tüm temsilleri gör. Bit'lere tıklayarak değiştir!
💡 Nasıl Çalışır?
42 = 32 + 8 + 2 = 25 + 23 + 21
Binary: 00101010
Hex: 4 bitlik gruplar → 0010 = 2, 1010 = A → 2A
Farklı Tabanlarda Toplama & Çıkarma
10'luk tabanda iki sayı gir, istediğin tabanda adım adım işlemi gör!
🔄 Taban Dönüşümü Nasıl Yapılır?
10'luk tabandaki sayıyı hedef tabana çevirmek için: Sürekli böl, kalanları tersten oku!
📝 Adım Adım Toplama/Çıkarma
📖 İşlem Açıklaması
💡 Toplama Nasıl Yapılır?
0+0=0, 0+1=1, 1+0=1, 1+1=10 (0 yaz, 1 elde)
Sonuç ≥8 ise, 8'i çıkar ve 1 elde et. Örn: 5+6=13 (3 yaz, 1 elde)
Sonuç ≥16 ise, 16'yı çıkar ve 1 elde et. Örn: A+9=13 (3 yaz, 1 elde)
Two's Complement Simülasyonu
Negatif sayıların binary gösterimini adım adım öğren
📚 Two's Complement Nedir?
- MSB (en sol bit) = işaret biti. 1 ise negatif.
- 8-bit aralık: -128 ile +127
- Kısayol: Sağdan sola ilk 1'i bul, ondan sonrakileri tersle
Sign Extension (SEXT)
Küçük bit sayılarını büyük bit sayılarına genişletirken işareti koruma
MSB (işaret biti) = 1 → Negatif sayı
Genişletilen bitlere 1 yazılır (işareti korumak için)
📚 Sign Extension Ne Zaman Kullanılır?
- ADD imm5: 5-bit immediate → 16-bit (SEXT)
- LD PCoffset9: 9-bit offset → 16-bit (SEXT)
- LDR offset6: 6-bit offset → 16-bit (SEXT)
- BR PCoffset9: 9-bit offset → 16-bit (SEXT)
- JSR PCoffset11: 11-bit offset → 16-bit (SEXT)
MSB (en sol bit) 0 ise soldan 0'lar eklenir, 1 ise 1'ler eklenir!
Overflow Dedektörü
İki sayı topla ve overflow olup olmadığını gör
⚠️ Overflow Kuralı
Overflow = (A ve B aynı işaret) VE (sonuç farklı işaret)
- (+) + (+) = (-) → OVERFLOW!
- (-) + (-) = (+) → OVERFLOW!
- (+) + (-) = herhangi → Overflow olmaz
Bit / Byte Dönüştürücü
Bilgi birimlerini birbirine çevir: bit, byte, KB, MB, GB
📏 Birim Hiyerarşisi
🎯 Sınav Soruları
📚 Temel Kurallar
- Bit = en küçük bilgi birimi (0 veya 1)
- Byte = 8 bit = 1 karakter (örn: "A" harfi)
- 1 KB = 1024 byte (210)
- 1 MB = 1024 KB (220 byte)
- 1 GB = 1024 MB (230 byte)
Bit Aralığı Seçici A[l:r]
Bir binary sayıdan belirli bitleri seçip çıkar. l = left (sol), r = right (sağ)
📚 Köşeli Parantez [l:r] Kullanımı
- Bitler sağdan sola numaralanır: bit 0 = en sağ, bit n-1 = en sol
- A[l:r] → l'den r'ye kadar olan bitleri seç (ikisi dahil)
- l (left) = sol sınır (büyük numara), r (right) = sağ sınır (küçük numara)
- Seçilen bit sayısı = l - r + 1
Ör: A = 0101001101010101 → A[14:9] = 101001, A[2:0] = 101
DeMorgan Kanunu
NOT(A AND B) = NOT(A) OR NOT(B) ve NOT(A OR B) = NOT(A) AND NOT(B)
DeMorgan 1: NAND → NOR Eşdeğeri
DeMorgan 2: NOR → NAND Eşdeğeri
🔧 NAND Kapısı - Evrensel Kapı
Sadece NAND kapılarıyla tüm diğer kapılar yapılabilir:
📚 DeMorgan Kuralları Özeti
| Kanun | Formül | Kelime |
|---|---|---|
| 1. Kanun | NOT(A·B) = A' + B' |
"Çarpımın değili = değillerin toplamı" |
| 2. Kanun | NOT(A+B) = A' · B' |
"Toplamın değili = değillerin çarpımı" |
Decoder (Kod Çözücü) Simülasyonu
n girişli decoder → 2n çıkış. Girişteki binary sayıya göre sadece bir çıkış aktif olur.
Giriş Değerleri
Truth Table
📚 Decoder Nedir?
- Girişe gelen binary sayıya göre çıkışlardan sadece birini aktif (1) yapar
- n giriş → 2n çıkış (Ör: 3 giriş → 8 çıkış)
- Ör: AB=01 ise → sadece 1. sıradaki çıkış "1", diğerleri "0"
- Kullanım: Bellekte (memory) belirli bir adresi seçmek
Multiplexer (MUX) Simülasyonu
Birçok girişten sadece birini seçerek çıkışa gönderir — "trafik polisi" gibi
Veri Girişleri
Selector (Seçici)
Seçim Tablosu
| S1 | S0 | Seçilen Giriş | Çıkış |
|---|---|---|---|
| 0 | 0 | A (D0) | 0 |
| 0 | 1 | B (D1) | 1 |
| 1 | 0 | C (D2) | 0 |
| 1 | 1 | D (D3) | 1 |
📚 MUX vs Decoder Farkı
| Özellik | Decoder | Multiplexer (MUX) |
|---|---|---|
| Girişler | n-bit binary | 2n veri girişi + n-bit selector |
| Çıkışlar | 2n çıkış hattı | Tek bir çıkış |
| İşlev | Girişe göre bir çıkışı aktif eder | Birçok girişten birini seçip tek çıkışa gönderir |
| Analoji | Kapı açıcı (hangi kapı?) | Trafik polisi (hangi yol?) |
Truth Table'dan Devre Tasarımı (SOP)
3 girişli (A, B, C) truth table'dan Sum of Products devresi oluştur ve test et
📝 Truth Table
Çıkışı 1 yapmak istediğin satırlara tıkla
| # | A | B | C | F |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 1 |
| 1 | 0 | 0 | 1 | 0 |
| 2 | 0 | 1 | 0 | 1 |
| 3 | 0 | 1 | 1 | 0 |
| 4 | 1 | 0 | 0 | 0 |
| 5 | 1 | 0 | 1 | 1 |
| 6 | 1 | 1 | 0 | 0 |
| 7 | 1 | 1 | 1 | 1 |
F = A'B'C' + A'BC' + AB'C + ABC
🧪 Devreyi Test Et
🔧 Devre Görselleştirmesi
📊 Minterm Analizi
📚 Sum of Products (SOP) Nedir?
- Minterm: Tüm girişlerin AND'lenmesi. Çıkış=1 olan her satır için bir minterm.
- SOP: Minterm'lerin OR'lanması. F = m0 + m2 + m5 + m7
- NOT kullanımı: Giriş 0 ise NOT'lanmış hali (A'), 1 ise direkt (A) kullanılır
Örnek: m5 = AB'C → A=1, B=0, C=1 için. B'nin NOT'u alınır çünkü 0.
Mantık Kapıları Simülasyonu
Girişleri değiştir, kapının çıkışını gör
4-Bit Adder / Subtractor
Toplama ve çıkarma devresinin nasıl çalıştığını gör
R-S Latch, D-Latch & Register Simülasyonu
Basit depolama birimlerinden register'a: adım adım öğren
🔒 R-S Latch (Basit Depolama Birimi)
En basit 1-bitlik hafıza devresi. İki girişi var: S (Set) ve R (Reset).
| S | R | Q (Çıkış) | Açıklama |
|---|---|---|---|
| 0 | 0 | ⚠️ | Tanımsız — yapılmamalı! |
| 0 | 1 | 1 | SET → Çıkış 1 olur |
| 1 | 0 | 0 | RESET → Çıkış 0 olur |
| 1 | 1 | Qprev | Eski değeri korur (bilgiyi saklar) |
🔐 Gated D-Latch & Register
D-Latch, R-S Latch'in gelişmiş hali. WE (Write Enable) eklenerek kontrol edilir.
Durum: WE=0 → Register önceki değerini tutuyor
📚 Depolama Birimleri Özeti
- R-S Latch: En basit 1-bitlik hafıza. S=Set, R=Reset. S=0,R=0 → Tanımsız!
- Gated D-Latch: R-S Latch + WE kontrolü. WE=1 → D yazılır, WE=0 → eski değer korunur
- Register: n adet D-Latch yan yana → n-bit depolama (ortak WE)
Von Neumann CPU Simülatörü
FETCH → DECODE → EXECUTE döngüsünü adım adım izle
🔧 Kontrol Birimi
📦 Bellek Arayüzü
⚙️ İşlem Birimi (ALU)
🛤️ Veri Yolu (Datapath)
💾 Bellek İçeriği
📋 İşlem Günlüğü
Memory Interface (MAR/MDR)
LOAD ve STORE işlemlerini simüle et
Bir işlem seç...
LC-3 Komutları Simülasyonu
Bir komut seç, ne yaptığını ve nasıl çalıştığını adım adım gör!
R2 ve R3 register'larındaki değerleri toplar, sonucu R1'e yazar.
R1 ← R2 + R3
🎬 Çalışma Animasyonu
📋 Adım Adım Çalışma
LC-3 Adresleme Modları
LEA, LD, LDI, LDR arasındaki farkları görsel olarak anla
| Komut | R1'e Yazılan | Bellek Erişimi |
|---|---|---|
| LEA R1, #10 | x300A (adres) |
0 |
| LD R1, #10 | x5000 (M[x300A]) |
1 |
| LDI R1, #10 | xABCD (M[M[x300A]]) |
2 |
| LDR R1, R2, #5 | M[R2+5] |
1 |
Condition Codes (N, Z, P)
Register'a yazılan değere göre hangi flag set edilir?
Değer = 0 → Z = 1 (Zero flag set)
Branch Test
Bu condition code'larla hangi branch'ler alınır?
📚 Condition Codes Kuralları
- Her zaman tam olarak biri set edilir (N, Z, veya P)
- Register'a değer yazan komutlar günceller: ADD, AND, NOT, LD, LDR, LDI, LEA
- Store komutları (ST, STR, STI) güncellemez
📋 Hangi Komutlar CC Günceller? (ÖNEMLİ!)
| Komut | CC Günceller mi? | Açıklama |
|---|---|---|
| ADD | ✅ EVET | Sonuç DR'ye yazılır, CC güncellenir |
| AND | ✅ EVET | Sonuç DR'ye yazılır, CC güncellenir |
| NOT | ✅ EVET | Sonuç DR'ye yazılır, CC güncellenir |
| LD | ✅ EVET | Bellekten okunan değer DR'ye yazılır |
| LDI | ✅ EVET | Indirect load, değer DR'ye yazılır |
| LDR | ✅ EVET | Base+offset load, değer DR'ye yazılır |
| LEA | ✅ EVET | Adres DR'ye yazılır (belleğe gitmez!) |
| ST | ❌ HAYIR | Sadece belleğe yazar, register değişmez |
| STI | ❌ HAYIR | Indirect store, register değişmez |
| STR | ❌ HAYIR | Base+offset store, register değişmez |
| BR | ❌ HAYIR | Sadece PC değişir, veri yok |
| JMP/RET | ❌ HAYIR | Sadece PC değişir |
| JSR/JSRR | ❌ HAYIR | R7'ye PC yazılır ama CC güncellenmez |
| TRAP | ⚠️ Değişebilir | Trap rutinine bağlı, genelde değiştirir |
🎯 KURAL: Bir register'a değer YAZILIYORSA → CC güncellenir
🎯 İSTİSNA: JSR/JSRR R7'ye yazar ama CC güncellemez!