Bölüm 9 · Simülatör

Port ile Aygıt Kontrolü: IN, OUT ve Maskeler

← Bölüm 9
Aygıt
Yazmaç, maske ve komutlar

    Port ile Aygıt Kontrolü

    Amaç: 8086'nın ayrı G/Ç adres uzayındaki portlara OUT ile veri yazıp IN ile durum okuyarak bir aygıtı denetlemek; porttaki her bitin bir lambaya, bölüte ya da mıknatısa karşılık geldiğini görmek. Veri yalnızca AL ya da AX üzerinden geçer; 255'ten büyük port numarası DX ile verilir.

    Tek bit nasıl değiştirilir?

    İşlemKomutEtkisi
    AçOR AX, maskemaskedeki 1 bitler 1 olur, diğerleri değişmez
    KapatAND AX, NOT maskemaskedeki bitler 0 olur (ör. bit 4 için 0FFEFh)
    DeğiştirXOR AX, maskemaskedeki bitler tersine döner
    SınaTEST AL, maskeyalnız bayraklar: bit 0 ise ZF = 1

    Mantık komutlarından sonra CF = OF = 0; ZF, SF ve PF sonuca göre ayarlanır. Yazmacı değiştirmek aygıtı değiştirmez: lamba ancak OUT ile porta yazılınca yanar.

    Aygıtlar

    • Trafik lambaları (emu8086, port 4): sözcüğün bit 0–11'i 12 lamba; direk k için bit 3k kırmızı, 3k+1 sarı, 3k+2 yeşil. Direkler: 0 sağ alt, 1 sağ üst, 2 sol üst, 3 sol alt.
    • 7 bölütlü gösterge (8255 port A = 310h): gerçek donanım örneği; ortak katot, bit 0–6 = a–g, bit 7 = nokta. 8255'in önceden 80h ile (tüm portlar çıkış) programlandığı varsayılır. Port 255'ten büyük olduğu için önce MOV DX, 310h.
    • Step motor (emu8086, port 7): aynı port okunurken durum, yazılırken veri portudur. IN AL, 7 ile bit 7 (hazır) okunur; OUT 7, AL bit 0–2 ile mıknatısları açar. Bu simülatörde her kabul edilen adımdan sonraki ilk okuma meşgul (00h), ikincisi hazır (80h) döner; meşgulken gönderilen bayt yok sayılır (adım kaçar). Gerçek programda yoklama JZ ile döngüye alınır.

    Nasıl kullanılır?

    1. Maske satırındaki bitlere tıklayın (ya da örnek programı Adım ▶ / Oynat ile yürütün), sonra komut düğmelerine basın. Yürütülen komutlar emu8086 sözdizimiyle listelenir.
    2. Kendini dene: verilen görevi komutlarla yapın, Kontrol'e basın. Görev yalnız istenen biti değiştirmeli, diğer lambalara dokunmamalıdır.

    Yazmaç ve bayrak sonuçları ortak 8086 yorumlayıcısıyla karşılaştırılarak doğrulanmıştır.

    İlgili sunum: Bölüm 9 · Aygıt Kontrolü (IN/OUT, trafik lambaları, step motor, 7 bölütlü gösterge).