Mikroişlemci - 8086 Kesmeler

Interruptprogramın yürütülmesi sırasında geçici bir durma yaratma yöntemidir ve çevresel aygıtların mikroişlemciye erişmesine izin verir. Mikroişlemci, bu kesintiye birISR (Interrupt Service Routine), mikroişlemciye kesmenin nasıl işleneceği konusunda talimat vermek için kısa bir programdır.

Aşağıdaki görüntü, 8086 mikroişlemcide sahip olduğumuz kesinti türlerini göstermektedir -

Donanım Kesintileri

Donanım kesintisine, mikroişlemciye belirli bir pin aracılığıyla bir sinyal göndererek herhangi bir çevresel aygıt neden olur.

8086'da iki donanım kesme pini vardır, yani NMI ve INTR. NMI, maskelenemez bir kesmedir ve INTR, daha düşük önceliğe sahip maskelenebilir bir kesmedir. İlişkili bir kesme pini daha INTA, kesme onayı olarak adlandırılır.

NMI

Maskelenebilir kesme istek pininden (INTR) daha yüksek önceliğe sahip tek bir maskelenemez kesme pinidir (NMI) ve tip 2 kesintidir.

Bu kesinti etkinleştirildiğinde, bu eylemler gerçekleşir -

  • Devam etmekte olan mevcut talimatı tamamlar.

  • Flag register değerlerini yığına iter.

  • Geri dönüş adresinin CS (kod segmenti) değerini ve IP (komut işaretçisi) değerini yığına iter.

  • IP, 00008H kelime konumunun içeriğinden yüklenir.

  • CS, bir sonraki kelime konumu 0000AH'nin içeriğinden yüklenir.

  • Kesinti bayrağı ve tuzak bayrağı 0'a sıfırlanır.

INTR

INTR, maskelenebilir bir kesmedir çünkü mikroişlemci sadece kesmeler, ayarlanmış kesme bayrağı komutu kullanılarak etkinleştirilirse kesilecektir. Net kesme bayrağı komutu kullanılarak etkinleştirilmemelidir.

INTR kesintisi, bir G / Ç bağlantı noktası tarafından etkinleştirilir. Kesme etkinleştirilirse ve NMI devre dışı bırakılırsa, mikroişlemci önce mevcut yürütmeyi tamamlar ve INTA pinine iki kez '0' gönderir. İlk '0', INTA'nın harici cihaza hazır olması için bilgi verdiği anlamına gelir ve ikinci '0' sırasında mikroişlemci, programlanabilir kesme denetleyicisinden 8 biti, örneğin X'i alır.

Bu işlemler mikroişlemci tarafından gerçekleştirilir -

  • Önce mevcut talimatı tamamlar.

  • INTA çıkışını etkinleştirir ve kesme türünü alır, örneğin X.

  • Flag register değeri, dönüş adresinin CS değeri ve dönüş adresinin IP değeri yığına basılır.

  • IP değeri, X × 4 kelime konumunun içeriğinden yüklenir

  • CS, sonraki kelime konumunun içeriğinden yüklenir.

  • Kesinti bayrağı ve tuzak bayrağı 0'a sıfırlandı

Yazılım Kesintileri

Kesintiler oluşturmak için bazı talimatlar programa istenen konuma eklenir. Bu kesme talimatları, çeşitli kesme işleyicilerinin çalışmasını test etmek için kullanılabilir. İçerir -

INT- Tip numaralı kesme talimatı

2 baytlık bir talimattır. İlk bayt işlem kodunu sağlar ve ikinci bayt kesinti türü numarasını sağlar. Bu grup altında 256 kesme türü vardır.

Yürütülmesi aşağıdaki adımları içerir -

  • Bayrak yazmaç değeri yığına itilir.

  • İade adresinin CS değeri ve iade adresinin IP değeri yığına basılır.

  • IP, kelime konumu 'tip numarası' × 4 içeriğinden yüklenir

  • CS, sonraki kelime konumunun içeriğinden yüklenir.

  • Kesinti Bayrağı ve Tuzak Bayrağı 0'a sıfırlandı

Type0 kesme için başlangıç ​​adresi 000000H, tip1 kesme için 00004H, tip2 için 00008H ve …… böyledir. İlk beş işaretçi, özel kesme işaretçileridir. yani -

  • TYPE 0 kesme, sıfır durumuna bölünmeyi temsil eder.

  • TYPE 1 kesme, bir programın hata ayıklaması sırasında tek adımlı yürütmeyi temsil eder.

  • TYPE 2 kesme, maskelenemez NMI kesmesini temsil eder.

  • TYPE 3 kesme, kesme noktası kesmesini temsil eder.

  • TYPE 4 kesme, taşma kesintisini temsil eder.

Tip 5'ten Tip 31'e kesintiler diğer gelişmiş mikroişlemciler için ayrılmıştır ve 32'den Tip 255'e kadar olan kesintiler donanım ve yazılım kesintileri için kullanılabilir.

INT 3-Kırılma Noktası Kesme Talimatı

İşlem kodu CCH olan 1 baytlık bir talimattır. Bu talimatlar programa eklenir, böylece işlemci oraya ulaştığında, programın normal çalışmasını durdurur ve kırılma noktası prosedürünü izler.

Yürütülmesi aşağıdaki adımları içerir -

  • Bayrak yazmaç değeri yığına itilir.

  • İade adresinin CS değeri ve iade adresinin IP değeri yığına basılır.

  • IP, kelime konumu 3 × 4 = 0000CH'nin içeriğinden yüklenir

  • CS, sonraki kelime konumunun içeriğinden yüklenir.

  • Kesinti Bayrağı ve Tuzak Bayrağı 0'a sıfırlandı

INTO - Taşma talimatında kesinti

1 baytlık bir talimat ve bunların anımsatıcı INTO. Bu talimatın işlem kodu CEH'dir. Adından da anlaşılacağı gibi, bu bir koşullu kesme talimatıdır, yani yalnızca taşma bayrağı 1'e ayarlandığında etkindir ve kesme türü numarası 4 olan kesme işleyicisine dallanırsa, taşma bayrağı sıfırlanırsa, yürütme devam eder. sonraki talimat.

Yürütülmesi aşağıdaki adımları içerir -

  • Bayrak kaydı değerleri yığına itilir.

  • İade adresinin CS değeri ve iade adresinin IP değeri yığına basılır.

  • IP, kelime konumu 4 × 4 = 00010H'nin içeriğinden yüklenir

  • CS, sonraki kelime konumunun içeriğinden yüklenir.

  • Kesinti bayrağı ve Tuzak bayrağı 0'a sıfırlanır