Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

Kesmeler (Interrupts) 1 Mikroişlemciler. İçerik 2  Kesmeler.

Benzer bir sunumlar


... konulu sunumlar: "Kesmeler (Interrupts) 1 Mikroişlemciler. İçerik 2  Kesmeler."— Sunum transkripti:

1 Kesmeler (Interrupts) 1 Mikroişlemciler

2 İçerik 2  Kesmeler

3 Örnek 3  Bir odada bulunan bir ki ş i dü ş ünün. Örne ğ in ders notu hazırlayan bir ö ğ retim üyesi olsun. Bu ki ş i, çalı ş ırken kesmelere maruz kalabilir:  Kesmelere maruz kaldı ğ ında, i ş i gerçekle ş tirecek, sonra kaldı ğ ı yerden ders notu hazırlamaya devam edecektir.  Bazı kesmeleri ihmal etmeyi veya ertelemeyi seçebilir.  Örne ğ in, bir yazılım için gelen ö ğ rencilere sonra gelmelerini söyleyebilir.  Telefon çalabilir. E ğ er çok me ş gul ise, cevap vermeyebilir.  Bazı kesmelere mutlaka cevap verilmelidir. Yangın alarmı gibi.  Kesmelere, akıllı bir cevap mekanizması uygulanmalıdır.

4 Örnek: Otobüs sürücüsü 4  Otobüs sürücüsü, normal olarak otobüsü sürmektedir. E ğ er, bir yolcu tarafından durma tu ş una basıldı ğ ında sürücü, a) Bir sonraki dura ğ a do ğ ru yakla ş ve dur b) Kapıyı aç c) Yolcuların çıkması için bekle d) Kapıyı kapat e) Devam et  Sürücü, kesme geldi ğ inde, önceden belirlenmi ş bir dizi i ş lemi gerçekle ş tirecektir.  İş lemci mimarisinin önemli bir bölümü, kesmelerin kar ş ılanması içindir.

5 8086’daki kesmeler 5  8086’da bir kesme, intr pin’i 0’dan 1’e geçti ğ inde gerçekle ş ir.  Bu kesme, CLI komutu kullanılarak Interrupt Flag kesme bayra ğ ının temizlenmesi ile kullanım dı ş ı bırakılır.  Kesmeler, STI komutu kullanılarak tekrar kullanım içine alınır.  Ayrıca, gerçek acil durumlar için NMI (Non Maskable Interrupt) de bulunur.  Kesmeler, genellikle I/O aygıtları tarafından ba ş latılırlar.

6 8086’daki kesmeler 6  Bir kesme olu ş tu ğ u zaman, mikroi ş lemci: 1. Kesmenin durumu stack’e atılır. 2. Kesmenin gerektirdi ğ i fonksiyon olan ISR (Interrupt Service Routine) gerçekle ş tirilir. 3. Kesmeden önceki durum stack’ten IRET komutu ile geri yüklenir.  ISR, özel bir fonksiyon çe ş ididir.

7 8086’daki kesmeler 7  Kesme olu ş tu ğ u zaman, CPU, mevcut komutu tamamladıktan sonra: 1. Maskelenebilir Kesmeleri, CLI komutu ile devre dı ş ı bırakır. Bu sayede, kesmede iken kesmeye maruz kalınmasına engel olunur. Programcı, ISR içerisinde STI komutunu ça ğ ırarak, bu özelli ğ i kaldırabilir. 2. IP, CS register’ları ile bayrak register’ı, stack’te saklanır. 3. N, kesme sayısı olmak üzere 4*N hafıza adresine atlama yapılır. 4. Bu adreste bulunan ISR çalı ş tırılır. 5. ISR’nin sonunda, IRET komutu kullanılarak IP, CS ve bayrak register’larının ilk durumları geri ça ğ rılır.

8 Kesme Atlama Tablosu 8  20 bitlik 8086 hafıza haritasının en altında Kesme Atlama Tablosu bulunur. Interrupt Number AddressMemory 2 000B-000AIP CS IP CS IP CS ISR’nin bulundu ğ u yerin tam adresi

9 Emülatördeki kesmeler 9  Kesmeler, fonksiyon olarak görülebilir.  Bu fonksiyonlar, programlamayı kolayla ş tırır. Bir karakteri yazan bir kod yazmaktansa, ilgili kesme kullanılabilir.

10 INT Komutu 10  Kodun içerisinde Kesme yapmak için INT komutu kullanılır. Basit bir yapısı vardır: INT deger  Deger: arası (0-0FFh) bir sayıdır. Genellik ile heksadesimal sayılar kullanılır.

11 Alt fonksiyonlar 11  256 tane fonksiyondan fazla fonksiyon kullanılabilir. Her kesmenin alt fonksiyonları olabilir.  Alt fonksiyon tanımlamak için AH register’ına, kesme yapmadan önce bir de ğ er atanır.  Her kesmenin 256 tane alt fonksiyonu olabilir. Yani 256*256 = fonksiyon gerçeklenebilir.  Genellikle AH register’ı kullanılır. Genellikle, di ğ er register’lar, alt fonksiyonlara parametre veya veri göndermek için kullanılır. Ancak bazı özel durumlarda, alt fonksiyon tanımlamak için di ğ er register’lar da kullanılabilir.

12 INT 10h 12  INT 10h kesmesi: 0Eh alt fonksiyonu, ekrana tek bir karakter yazdırmak için kullanılır.  Ekrana yazılacak olan karakter AL register’ında bulunur.  AH register’ındaki de ğ er de ğ i ş mez.  EMU8086 Emülatörü üzerindeki kodlar hakkında bilgi verdi ğ imizi unutmayın. Farklı laboratuvar kitlerinde, farklı tanımlamalar yapılmı ş olabilir.

13 Örnek: Hello World 13 ORG 100h MOV AH, 0Eh ; alt fonksiyon seç. MOV AL, 'H' INT 10h ; Harfi yazdır! MOV AL, 'e' INT 10h ; Harfi yazdır! MOV AL, 'l' INT 10h ; Harfi yazdır! MOV AL, 'l' INT 10h ; Harfi yazdır! MOV AL, 'o' INT 10h ; Harfi yazdır! MOV AL, '!' INT 10h ; Harfi yazdır! RET

14 İmleç pozisyonunu değiştirmek 14  INT 10h / AH = 02h  Girdiler:  DH = satır  DL = sütun  BH = sayfa sayısı (0..7)  Örnek: mov dh, 10 mov dl, 20 mov bh, 0 mov ah, 2 int 10h

15 Karakter ve özellik okuma 15  INT 10h / AH = 08h - imleç pozisyonundaki karakteri ve özelli ğ i okuma.  Girdi:  BH = Sayfa sayısı.  Dönüt:  AH = özellik.  AL = karakter.

16 Karakter ve özellik yazma 16  INT 10h / AH = 09h - İ mleç pozisyonuna karakter ve özellik yazmak.  Girdi:  AL = Yazılacak karakter.  BH = Sayfa sayısı.  BL = özellik.  CX = Karakterin kaç defa yazılaca ğ ı.

17 Özellikler 17  Karakter özellikleri 8 bitlik de ğ erlerdir. Dü ş ük olan 4 karakterde yazı rengi, yüksek olan 4 bitte ise arka plan rengi tanımlıdır. HEXBINColor HE X BINColor 00000Black81000Dark Gray 10001Blue91001Light Blue 20010GreenA1010Light Green 30011CyanB1011Light Cyan 40100RedC1100Light Red 50101MagentaD1101Light Magenta 60110BrownE1110Yellow 70111Light GrayF1111White

18 Karakter yazma 18  INT 10h / AH = 0Ah - Sadece imleç pozisyonuna karakter yazmak.  Girdi:  AL = Yazılacak karakter.  BH = Sayfa sayısı.  CX = Karakterin kaç defa yazılaca ğ ı.


"Kesmeler (Interrupts) 1 Mikroişlemciler. İçerik 2  Kesmeler." indir ppt

Benzer bir sunumlar


Google Reklamları