Vize tekrarı: sayılar, mantık, bellek, von Neumann, LC-3
1-8. haftaların tek sayfalık özeti, her konunun sınav tarifi ve karışık deneme soruları. Sınavdan önceki akşam buradan başla.
Bu sayfa ilk sekiz haftanın sıkıştırılmış hali. Her konunun tarifini bir tabloda topladık, ardından karışık soruların çözümünü verdik. Bu ders işlem dersi: puanın çoğu her seferinde aynı adımlarla çözülen sorulardan gelir. Önce tabloyu oku, sonra soruları süre tutarak çöz, yanlış yaptığın konunun kendi sayfasına dön.
Vizenin kapsamı dönemden döneme değişebilir (bazı dönemlerde 1-6. haftalar, bazılarında LC-3 de dahil). Ders sayfasındaki duyuruya göre hangi bloğa ağırlık vereceğine karar ver.
Konu → soru tipi → tarif
| Konu | Tipik soru | Tarif |
|---|---|---|
| Çevirmeler | dec ↔ bin ↔ hex | 2’nin kuvvetlerini çıkar; hex için sağdan 4’lü grupla |
| Dört okuma | 8 bitlik desenin 4 değeri | MSB = 0 ise hepsi aynı; 2’s = unsigned - 256 |
| 2’s complement | -X’i yaz | ters çevir + 1 |
| Toplama/çıkarma | A - B, overflow | A + (-B), 9. biti at, işaret kuralını yaz |
| Sign extension | 5 bit → 8/16 bit | MSB’yi sola kopyala |
| IEEE 754 | encode/decode | 1.xxx × 2^e, E = e + 127, gizli 1’i yazma |
| Bit maskesi | set/clear/test/toggle | OR / AND (0’lı maske) / AND / XOR |
| ASCII | harf ve rakam dönüşümü | x30 çıkar; bit 5 = x20 |
| Devre okuma | şema → tablo → ifade | ara çıkışlara isim ver, satır satır doldur |
| Sadeleştirme | minimal SOP | tek değişkende farklı çiftler, X + X’ = 1 |
| Tersini alma | F’ | DeMorgan, sonra çarp ve sadeleştir |
| NAND-only | sadece NAND | SOP’u çift tersle |
| Σm / ΠM | kanonik formlar | 1 satırları / 0 satırları |
| Decoder/mux/FA | kısa cevap | giriş = seçilen numara |
| Latch | Q izleme | NAND: 11 tut, 0 olan harf iş yapar |
| Bellek | adres biti, boyut | konum × m bit |
| FSM | iz, flip-flop sayısı | tablo satırı; |
| von Neumann | 5 parça, register’lar | PC adres, IR komut, MAR adres, MDR veri |
| Komut döngüsü | fazlar, FETCH | MAR ← PC, PC ← PC+1, MDR ← M[MAR], IR ← MDR |
| I/O | polling | LDI KBSR, BRzp, LDI KBDR |
| LC-3 kodlama | encode/decode | opcode tablosu, alanlar, artmış PC |
| LC-3 izleme | register/CC/bellek | satır satır iz tablosu |
Sınav günü beş hatırlatma
- Gösterimi yaz. “8-bit 2’s complement” gibi bir ifade cevabının başında dursun.
- Kontrolü yap. Her çevirmede ondalığa dönüp sağla. Beş saniye, bir puan.
- Overflow’da kural cümlesini yaz: “Overflow occurs only if both operands have the same sign and the result has the opposite sign.”
- Sadeleştirmede kuralın adını yaz: distributive, complement, DeMorgan…
- LC-3’te offset’i artmış PC’ye ekle. En sık kaybedilen puan.
Karışık örnekler
Sayılar: 0x9C’nin dört okuması ve sign extension
0x9C = 1001 1100
unsigned 128+16+8+4 = 156
SM eksi, 001 1100 = 28 = -28
1's çevir 0110 0011 = -99
2's 156 - 256 = -100
16 bite sign extension: 1111 1111 1001 1100 = 0xFF9C (hâlâ -100)
IEEE: 19.5’i kodla
19 = 10011, 0.5 = .1 → 10011.1 = 1.00111 × 2^4
S = 0, E = 4 + 127 = 131 = 1000 0011, F = 00111 0...
0 10000011 00111000000000000000000 = 0x419C0000
Mantık: Σm(2, 3, 6, 7)
m2 = A'BC' m3 = A'BC m6 = ABC' m7 = ABC
A'B(C' + C) + AB(C' + C) = A'B + AB = B(A' + A) = B
Dört minterm tek bir harfe indi: B = 1 olan her satır.
Bellek ve FSM
konum × 32 bit = byte = 64 KB. 12 durumlu bir FSM: → 4 flip-flop.
von Neumann
PC = x4A3F iken FETCH: MAR ← x4A3F, PC ← x4A40, MDR ← M[x4A3F], IR ← MDR. PC’nin artışı hex’te: F + 1 = 10, elde sola gider.
LC-3: kodla, çöz, izle
LDR R5, R1, #-2 → 0110 101 001 111110 = x6A7E.
xA9FE x3000’de → 1010 100 111111110 → LDI R4, offset -2 → pointer adresi x3001 - 2 = x2FFF; R4 ← M[M[x2FFF]].
AND R1, R1, #0 R1 = 0
ADD R2, R1, #3 R2 = 3
AGAIN ADD R1, R1, R2 | tur R1 R2
ADD R1, R1, R1 | 1 6 2
ADD R2, R2, #-1 | 2 16 1
BRp AGAIN | 3 34 0 (Z, düş)
HALT
Overflow: üç toplama, üç karar
| Toplama (8 bit) | Sonuç | Ondalık | Carry-out | Overflow | Neden |
|---|---|---|---|---|---|
| 01100100 + 00111100 | 10100000 | 100 + 60 → -96 | 0 | evet | (+) + (+) = (−) |
| 11000000 + 10111111 | 01111111 | -64 + (-65) → 127 | 1 | evet | (−) + (−) = (+) |
| 11110110 + 00001100 | 00000010 | -10 + 12 → 2 | 1 | hayır | işaretler farklı |
Üçüncü satır sınavın sevdiği tuzak: carry-out var ama sonuç doğru. İkinci satırda gerçek toplam -129, 8 bitin alt sınırı -128’i aştı.
Devre: bir NOR ve bir AND
Gate 1 NOR(A, B) = X, gate 2 AND(B, C) = Y, gate 3 OR(X, Y) = F. Tabloyu ara sütunlarla doldurunca F = Σm(0, 1, 3, 7) = A’B’ + BC çıkar (3. hafta, devre okuma bölümü). Sınavda her ara çıkışa bir isim ver; kısmi puan oradan gelir.
I/O: üç satırlık bekleme döngüsü
POLL LDI R1, KBSRP ; KBSR'yi oku
BRzp POLL ; bit 15 = 0 → bekle
LDI R0, KBDRP ; karakter R0'da
Hazır olunca KBSR = x8000, yani negatif. Bu yüzden BRzp. KBSRP bir .FILL xFE00; LD bu kadar uzağa ulaşamaz, LDI gerekir.
Komut döngüsü: LDR’nin fazları
LDR R4, R2, #-3, R2 = x4005: FETCH (MAR ← PC, PC ← PC + 1, IR ← komut), DECODE (opcode 0110), EVALUATE ADDRESS (x4005 - 3 = x4002), FETCH OPERANDS (MDR ← M[x4002]), EXECUTE yok, STORE RESULT (R4 ← MDR, CC ayarlanır). Belleğe iki kez gidildi.
Hızlı kontrol listesi
| Biliyor musun? | Cevap |
|---|---|
| 6 bit 2’s complement aralığı | -32..31 |
| -1’in 16 bit hex’i | 0xFFFF |
| 1.0’ın IEEE kodu | 0x3F800000 |
| ‘A’ ve ‘a’ | x41, x61 |
| n-MOS ne zaman iletir | gate = 1 |
| 3-to-8 decoder, giriş 011 | D3 |
| 16-to-1 mux select | 4 |
| FA 1+1+1 | S = 1, Cout = 1 |
| D latch WE = 0 | tutar |
| LC-3 bellek boyutu | 128 KB |
| ADD’in atladığı faz | EVALUATE ADDRESS |
| KBSR adresi | xFE00 |
| RET | JMP R7 = xC1C0 |
Sık yapılan hatalar
| Yanlış düşünce | Doğrusu |
|---|---|
| Carry-out = overflow | İşaret kuralına bak |
| IEEE’de fraction’a gizli 1 | Yazılmaz |
| m5 = A’BC’ | AB’C |
| NAND latch’te S = 1 set | S = 0 set |
| PC şu anki komutu gösterir | Sıradakini |
| LD adresi = komut adresi + offset | (komut adresi + 1) + offset |
| BRzp ile BRp aynı | BRzp sıfırda da dallanır |
| ST CC’yi değiştirir | Değiştirmez |
Kendini test et
Sınavdaki gibi İngilizce sorular. Önce kâğıt kalemle çöz, sonra cevabı aç.
Give the decimal value of 0xB7 as unsigned, sign-magnitude, 1's complement and 2's complement.
Cevabı göster
0xB7 = 1011 0111. Unsigned: 128+32+16+4+2+1 = 183.
SM: eksi, 011 0111 = 55 → -55. 1's: çevir 0100 1000 = 72 → -72. 2's: -128 + 55 = -73 (ya da 183 - 256).
In 8-bit 2's complement, A = 01001110 and B = 10111000. Compute A - B and state whether overflow occurred.
Cevabı göster
A = 78, B = -72. -B = 01001000 (+72). A + (-B) = 01001110 + 01001000 = 10010110 (MSB 1, -106 okunur).
Gerçek sonuç 150 > 127. Toplanan iki sayı (A, -B) pozitif, sonuç negatif → overflow.
What is the minimum number of bits needed to represent -129 in 2's complement?
Cevabı göster
8 bit en fazla -128'e iner. 9 bit: . Cevap 9.
Encode -7.375 in IEEE 754 single precision (hex).
Cevabı göster
7 = 111, 0.375 = .011 → 111.011 = 1.11011 × 2^2. S = 1, exponent = 129 = 1000 0001, fraction = 11011 ve sıfırlar.
1 10000001 11011000... → 1100 0000 1110 1100 0000 ... = 0xC0EC0000.
Decode the IEEE 754 single-precision value 0x3E200000.
Cevabı göster
0011 1110 0010 0000 ... → S = 0, exponent = 0111 1100 = 124 → e = -3, fraction = 01.
1.01 × 2^-3 = 0.00101 = 1/8 + 1/32 = 0.15625.
The ASCII code of 'd' is 0x64. Which operation and mask give 'D'?
Cevabı göster
Büyük/küçük harf farkı bit 5 (0x20). Bit 5'i temizle: AND 1101 1111 = 0xDF. 0x64 AND 0xDF = 0x44 = 'D'.
F(A,B,C) = A'B'C + A'BC + ABC. Simplify F and write it as ΠM(…).
Cevabı göster
A'B'C + A'BC = A'C(B' + B) = A'C. A'BC + ABC = BC(A' + A) = BC (A'BC iki kez kullanıldı).
F = Σm(1, 3, 7), F = 0 olan satırlar 0, 2, 4, 5, 6 → ΠM(0, 2, 4, 5, 6).
Using DeMorgan, find F' for F = A'C + BC as a sum of products.
Cevabı göster
F' = (A'C)'·(BC)' = (A + C')(B' + C') = AB' + AC' + B'C' + C'C' = AB' + C'(A + B' + 1) = AB' + C'.
Kontrol: F' = 1 satırları 0, 2, 4, 5, 6; F'nin {1, 3, 7} kümesiyle birleşimi {0..7}.
A NAND R-S latch starts with Q = 0. (S, R) = 01 → 11 → 10 → 11 → 01. Give Q after each step.
Cevabı göster
Aktif-düşük: 01 set → 1, 11 tut → 1, 10 reset → 0, 11 tut → 0, 01 set → 1.
A memory has 13 address bits and 16-bit addressability. What is its size in KB? How many flip-flops does a 7-state FSM need?
Cevabı göster
bit = 8192 × 2 byte = 16384 byte = 16 KB. 7 durum: → 3 flip-flop.
Decode the LC-3 instructions x6A7E and x0BF8 (the second one is at address x3010).
Cevabı göster
x6A7E = 0110 101 001 111110: LDR, DR = R5, BaseR = R1, offset6 = -2.
x0BF8 = 0000 101 111111000: n = 1, z = 0, p = 1 → BRnp, offset = -8, hedef = x3011 - 8 = x3009.
What are R1, R2 and the condition codes when this program halts?
AND R1, R1, #0
ADD R2, R1, #3
AGAIN ADD R1, R1, R2
ADD R1, R1, R1
ADD R2, R2, #-1
BRp AGAIN
HALTCevabı göster
R1 = 0, R2 = 3. Tur 1: R1 = (0+3)·2 = 6, R2 = 2. Tur 2: R1 = (6+2)·2 = 16, R2 = 1. Tur 3: R1 = (16+1)·2 = 34, R2 = 0 → Z, BRp düşer.
Son CC'yi ADD R2 belirledi: Z.
Doğrulama: Her cevap node ile yeniden hesaplandı: sayılar bit düzeyinde, IEEE 754 DataView ile, Boole ifadeleri tüm giriş kombinasyonlarıyla, latch kapı seviyesinde, LC-3 komutları ve program kendi assembler + simülatörümüzde (verify/SEN2201/09.mjs, lc3.mjs).