Bölüm 2: 8086 Pinler
Çoktan Seçmeli · Genel Bakış
Soru 1: Çoklamanın Amacı
8086'da adres ve veri bitlerinin aynı pinlerden (AD0–AD15) zaman paylaşımıyla geçmesinin amacı nedir?
D: 20 adres + 16 veri + kontrol, saat ve güç sinyalleri 40 pine ancak çoklamayla sığar: AD0–AD15 T1'de adres, sonra veri; A16–A19 T1'de adres, sonra durum (S3–S6) taşır. Amaç hız değil pin tasarrufudur; bedeli, adresi ALE ile dış kilitlere almak ve her erişimin en az 4 saat turu sürmesidir. Adres yolu yine tek yönlüdür.
Kısa Cevap · Genel Bakış
Soru 2: Moda Göre Pinler
MN/MX' pini hangi seviyeye bağlanınca maksimum mod seçilir? Minimum modda adları verilen 24–31 numaralı pinlerin maksimum moddaki işlevlerini yazın.
| Pin | Minimum | Maksimum |
|---|---|---|
| 24 | INTA' | ? |
| 25 | ALE | ? |
| 26–28 | DEN', DT/R', M/IO' | ? |
| 29 | WR' | ? |
| 30–31 | HLDA, HOLD | ? |
Cevabı göster
MN/MX' = 0 (GND) → maksimum mod; 1 (VCC) → minimum mod. Mod donanımla seçilir, çalışırken değişmez.
| Pin | Maksimum | Görev |
|---|---|---|
| 24–25 | QS1, QS0 | kuyruk durumu (8087 izler) |
| 26–28 | S0', S1', S2' | döngü türü → 8288 |
| 29 | LOCK' | yolu kilitler |
| 30–31 | RQ'/GT1', RQ'/GT0' | yol isteği/bağışı |
Maksimum modda RD', WR', ALE, DEN', DT/R' ve INTA' gibi kontrol sinyallerini 8288 yol denetleyicisi üretir.
Çoktan Seçmeli · Adres ve Veri
Soru 3: Adresi Kilitleyen Sinyal
AD0–AD15 pinlerindeki adresin T1 sırasında dış kilitlere (8282) alınmasını hangi sinyal sağlar?
A: ALE (adres kilidi etkinleştirme) her yol döngüsünün T1'inde 1 olur; düşen kenarında 8282 kilitleri adresi yakalar ve döngü boyunca bellek ile G/Ç'ye sabit sunar. T2'den sonra aynı pinler veri taşır. DEN' veri alıcı-vericisini açar, DT/R' onun yönünü seçer, BHE' veri yolunun yüksek yarısının kullanılacağını bildirir.
Hesap Sorusu · Adres ve Veri
Soru 4: BHE' ve A0
DS = 0000h. Her komut için kaç veri yol döngüsü gerektiğini, her döngüde BHE' ve A0 değerlerini ve verinin hangi hatlardan geçtiğini yazın.
MOV [2004h], AXMOV [2007h], AXMOV AL, [2009h]MOV [200Ah], AH
Cevabı göster
| Döngü | Adres | BHE' | A0 | Hatlar | |
|---|---|---|---|---|---|
| 1 | 1 | 02004h | 0 | 0 | D15–D0 (AL → çift, AH → tek) |
| 2 | 1 | 02007h | 0 | 1 | D15–D8 (AL) |
| 2 | 02008h | 1 | 0 | D7–D0 (AH) | |
| 3 | 1 | 02009h | 0 | 1 | D15–D8 → AL |
| 4 | 1 | 0200Ah | 1 | 0 | D7–D0 (AH) |
Çift adresler düşük bankada (D7–D0), tek adresler yüksek bankadadır (D15–D8). Tek adresteki bir sözcük iki döngüye bölünür; bayt erişimi hangi adreste olursa olsun tek döngüdür.
Adım Adım Çalıştırma · Adres ve Veri
Soru 5: Hizalı ve Hizasız Erişim
Her veri erişimi kaç yol döngüsü sürer, BHE' ve A0 ne olur? Sonunda CX ve DL kaçtır? (30205h başlangıçta 00h.)
DS = 3000h: veri kesimi 30000h'de. Bu iki komut yalnızca komut getirme döngüsü kullanır.
FA = 30203h tek. 1. döngü: BHE' = 0, A0 = 1 → yalnız yüksek banka; AL'deki 6Bh D15–D8 üzerinden yazılır.
2. döngü: FA = 30204h, BHE' = 1, A0 = 0 → yalnız düşük banka; AH'deki 5Ah yazılır. Hizasız sözcük = 2 döngü.
FA = 30206h çift: BHE' = 0, A0 = 0 → iki banka birden; BL (D2h) çift, BH (C1h) tek adrese tek döngüde yazılır.
Tek adresten sözcük okuma: 1. döngü 30205h (BHE' = 0, A0 = 1) → CL = 00h; 2. döngü 30206h (BHE' = 1, A0 = 0) → CH = D2h. CX = D200h.
Bayt okuma, çift adres: BHE' = 1, A0 = 0, D7–D0 → DL = 5Ah. Veri için toplam 2 + 1 + 2 + 1 = 6 yol döngüsü.
mov ax, 3000h mov ds, ax mov ax, 5A6Bh mov [0203h], ax mov bx, 0C1D2h mov [0206h], bx mov cx, [0205h] mov dl, [0204h]
Çoktan Seçmeli · Yol Döngüleri
Soru 6: Okumada Yol Dönüşü
Okuma yol döngüsünün T2 durumunda 8086, AD0–AD15 sürücülerini neden yüksek empedansa (yüzer duruma) alır?
B: T1'de adresi işlemci sürer, T3–T4'te veriyi bellek sürer. Arada işlemcinin çıkışı bırakması gerekir; yoksa aynı hatta iki sürücü çakışır. Bu yol dönüşü (bus turnaround) yalnızca okumada vardır: yazmada verinin kaynağı yine işlemcidir. Adres T1'de kilitlenmiştir; READY ayrı bir pindir.
Hesap Sorusu · Yol Döngüleri
Soru 7: Kaç Bekleme Durumu?
10 MHz'lik bir 8086-1 sisteminde adres gecikmesi, veri kurulma süresi ve tampon gecikmeleri toplamı TCLAV + TDVCL + ttampon = 90 ns kabul ediliyor. Belleğin erişim süresi a) 350 ns, b) 250 ns, c) 200 ns ise kaç Tw gerekir? Her durumda yol döngüsü kaç ns sürer?
Cevabı göster
T = 1 / 10 MHz = 100 ns; tizin = 3T − 90 = 300 − 90 = 210 ns. n = ⌈(terişim − tizin) / T⌉, negatifse 0.
| Erişim | n | Döngü |
|---|---|---|
| 350 ns | ⌈140 / 100⌉ = 2 | 6 × 100 = 600 ns |
| 250 ns | ⌈40 / 100⌉ = 1 | 5 × 100 = 500 ns |
| 200 ns | 200 ≤ 210 → 0 | 4 × 100 = 400 ns |
Sınama (350 ns): 1 Tw → 310 ns yetmez; 2 Tw → 410 ns yeter. Her Tw pencereyi bir T uzatır.
Adım Adım Çalıştırma · Yol Döngüleri
Soru 8: READY ve Bekleme Durumu
5 MHz'lik 8086 (T = 200 ns) yavaş bir bellekten okuyor; bellek verisini ancak bir bekleme durumuyla hazırlayabiliyor. Döngü hangi durumlardan geçer ve kaç ns sürer?
T1: M/IO' = 1, adres AD pinlerinde; ALE darbesi adresi kilitler. Adres çözücü yavaş belleği seçer, bellek READY'yi 0'a çeker.
T2: AD sürücüleri yüzer, RD' = 0 ve DEN' = 0: alıcı-verici açılır, yönü (DT/R' = 0) belleğe doğrudur.
T3: işlemci READY'yi örnekler; READY = 0 → T4'e geçmez, bir Tw ekler. Bütün sinyaller olduğu gibi kalır.
Tw: veri artık yolda; READY = 1 örneklenir → sıradaki durum T4.
T4: veri işlemciye alınır, RD' ve DEN' pasife döner. Döngü 5 × 200 = 1000 ns sürdü; READY iki Tw boyunca 0 kalsaydı 1200 ns.
T1: adres AD'ye, ALE = 1
T2: AD yüzer, RD' = 0, DEN' = 0
T3: READY örneklenir
READY = 0 → Tw ekle
Tw: READY yeniden örneklenir
T4: veri alınır, RD' = 1Kısa Cevap · Durum Pinleri
Soru 9: Hangi Kesim Kullanılıyor?
T2–T4 durumlarında A17/S4 ve A16/S3 pinleri, erişimde hangi kesim yazmacının kullanıldığını gösterir. Aşağıdaki erişimlerde S4 S3 kaçtır? A18/S5 neyi gösterir?
- Komut baytlarının getirilmesi
MOV AL, [BX]komutunun veri okumasıPUSH AXkomutunun yazmasıMOV AL, ES:[DI]komutunun okumasıMOV AX, [BP+4]komutunun okuması
Cevabı göster
| Erişim | Kesim | S4 S3 |
|---|---|---|
| komut getirme | CS | 1 0 |
[BX] | DS | 1 1 |
PUSH | SS | 0 1 |
ES:[DI] | ES | 0 0 |
[BP+4] | SS | 0 1 |
S5 o anki IF bayrağıdır; S6 her zaman 0'dır. G/Ç ve kesme vektörü erişimleri de 1 0 kodunu (CS ya da kesim yok) verir. Bu bitlerle her kesime ayrı bir 1 MB bellek bağlanabilir.
Çoktan Seçmeli · Kontrol Pinleri
Soru 10: Alıcı-Vericinin Yönü
Minimum modda bir yol döngüsünün T2–T4 durumlarında DEN' = 0 ve DT/R' = 0 ölçülüyor. Veri yolu alıcı-vericisinde (8286) ne olur?
A: DEN' aktif düşüktür: 0 iken alıcı-verici açıktır. DT/R' = 1 gönderme (yazma), 0 alma (okuma) demektir; bu döngü bir okumadır, veri işlemciye doğru akar. DEN' T1'de 1 kalır ki AD pinlerindeki adres veri yoluna sızmasın. Yolun başka yöneticiye verilmesi HOLD/HLDA ile olur.
Kısa Cevap · Kontrol Pinleri
Soru 11: Komut ve Kontrol Sinyalleri
Minimum modda aşağıdaki komutların veri yol döngüsünde M/IO', RD', WR' ve DT/R' pinleri hangi değerleri alır?
MOV AL, [BX]MOV [BX], ALIN AL, 60hOUT 43h, AL
Cevabı göster
| Komut | M/IO' | RD' | WR' | DT/R' | İşlem |
|---|---|---|---|---|---|
MOV AL, [BX] | 1 | 0 | 1 | 0 | bellek okuma |
MOV [BX], AL | 1 | 1 | 0 | 1 | bellek yazma |
IN AL, 60h | 0 | 0 | 1 | 0 | G/Ç okuma |
OUT 43h, AL | 0 | 1 | 0 | 1 | G/Ç yazma |
RD' ve WR' aktif düşüktür; hiçbir zaman ikisi birden 0 olmaz. 8088'de M/IO' yerine ters kutuplu IO/M' vardır. Her komutun bunlardan önce bir de komut getirme (bellek okuma) döngüsü vardır.
Çoktan Seçmeli · Kontrol Pinleri
Soru 12: Sıfırlamadan Sonra
RESET pini en az dört saat turu 1 tutulup bırakıldıktan sonra 8086 ilk komutu hangi fiziksel adresten getirir?
B: Sıfırlama sonrası CS = FFFFh, IP = 0000h, DS = SS = ES = 0000h; bayraklar temizlenir (IF = 0, kesmeler kapalı) ve kuyruk boşalır. FA = FFFF0h + 0000h = FFFF0h: 1 MB'ın son 16 baytı. Buraya ROM (BIOS) yerleştirilir ve genellikle asıl başlangıç koduna uzak bir JMP bulunur.
Çoktan Seçmeli · Kontrol Pinleri
Soru 13: DMA ve Yol Devri
Minimum modda bir DMA denetleyicisi yolu istiyor. Olayların doğru sırası hangisidir?
D: HOLD aktif yüksek bir istektir. 8086 içinde bulunduğu yol döngüsünü tamamlar, T4 ya da boşta turunun ortasında adres, veri ve kontrol pinlerini yüzer duruma alır ve HLDA = 1 ile onay verir. Bu sırada EU kuyruktaki komutları yürütmeyi sürdürebilir. HOLD düşünce HLDA da düşer ve yol geri alınır. Kesme mekanizması (INTR/INTA') ayrı bir el sıkışmadır.
Hesap Sorusu · Kontrol Pinleri
Soru 14: Saat Üreteci
8284A saat üretecine 30 MHz'lik kristal bağlanıyor.
- CLK frekansı ve periyodu nedir? Hangi 8086 sürümüne uygundur?
- %33 görev çevriminde saat bir periyodun ne kadarında 1'dir?
- Bekleme durumu olmayan bir yol döngüsü kaç ns sürer?
- 8284A, READY ve RESET girişleriyle ne yapar?
Cevabı göster
- 8284A kristali 3'e böler: 30 / 3 = 10 MHz, T = 100 ns → 8086-1 (8086: 5 MHz, 8086-2: 8 MHz).
- 100 / 3 ≈ 33 ns yüksek, ≈ 67 ns düşük.
- 4 × 100 = 400 ns.
- İkisini de saate senkronlar; RES' girişindeki Schmitt tetikleyici, RC devresinden gelen yavaş yükselen gerilimi temiz bir RESET sinyaline çevirir.
Çoktan Seçmeli · Maksimum Mod
Soru 15: Durum Kodu ve 8288
Maksimum modda bir yol döngüsünün başında S2' S1' S0' = 0 1 0 görülüyor. 8288 yol denetleyicisi hangi komut sinyalini üretir?
C: S2' = 0 → G/Ç ya da özel döngü; S1' S0' = 1 0 → yazma. Kod tablosu: 000 kesme kabul (INTA'), 001 G/Ç oku (IORC'), 010 G/Ç yaz (IOWC', AIOWC'), 011 HLT, 100 kod getirme, 101 bellek oku (ikisi de MRDC'), 110 bellek yaz (MWTC'), 111 pasif. Bu döngüyü bir OUT komutu başlatır.
Adım Adım Çalıştırma · Kesmeler
Soru 16: Kesme Vektörü İzleme
Bellekte 0000:0070h'den itibaren 20 01 00 07 baytları var. INT 1Ch yürütülünce yığına ne itilir, SP ne olur, yordam hangi fiziksel adreste başlar?
INT 1Ch (2 bayt) getirildi: IP = 0107h, dönüş adresi budur. Vektörün yeri tip × 4 = 1Ch × 4 = 70h.
PUSHF: SP = FFFCh, bayraklar (F202h; 8086'da 12–15. bitler 1 okunur) yığına. Ardından IF = 0, TF = 0: yordam kesilmesin, tek adımda çalışmasın.
PUSH CS (0700h) → SP = FFFAh; PUSH IP (0107h) → SP = FFF8h. Dönüş adresi 0700:0107h yığında.
70h–71h: 20 01 → little-endian IP = 0120h.
72h–73h: 00 07 → CS = 0700h. Yordam 0700:0120h = 07120h'de başlar. IRET; IP, CS ve FLAGS'i bu sırayla geri alır (SP = FFFEh, IF = 1).
; CS:IP = 0700:0105h ; SS:SP = 0700:FFFEh ; FLAGS = F202h (IF = 1) int 1Ch ; CD 1C ; işlemcinin adımları: PUSHF IF ← 0, TF ← 0 PUSH CS PUSH IP ; dönüş: 0107h IP ← [0000:0070h] CS ← [0000:0072h]
Çoktan Seçmeli · Kesmeler
Soru 17: INTR ve NMI
INTR ve NMI pinleri için hangisi doğrudur?
C: INTR seviye tetiklemeli, maskelenebilir girişidir: yalnızca IF = 1 iken her komutun sonunda kabul edilir; işlemci iki INTA' darbesi üretir ve ikincisinde kesme denetleyicisi tip numarasını D7–D0'a koyar. NMI ise 0 → 1 geçişiyle tetiklenir, CLI ile kapatılamaz ve tip numarası sabittir (2); güç kesintisi, bellek eşlik hatası gibi acil olaylar içindir.