Kesmeler (Interrupts)

Slides:



Advertisements
Benzer bir sunumlar
ARM Tabanlı Mikrodenetleyici Temelleri ve Programlama
Advertisements

VTYS Öğr. Gör. Engin DUTAR
Programming 8086 – Kısım II Program Akışı ve Döngüler
SelCPU Temmuz 2008 Bilg.Bil.Müh.Selçuk BAŞAK SelSistem Bilgi ve İletişim Teknolojileri
8259A Programlanabilir Kesme Denetleyicisi (PIC)
BİLGİ VE HABERLEŞMESİNİN ÖNEMİ
Mail açarken dikkat edilmesi gerekenler
Bölüm 2 C Dilinin Temelleri
AHMET NAFİZ DEMİR * * 2005 a.g.b k.g.b z.g.e a.g.b a.g.b o.l.m a.g.b
String Diziler(Katarlar)
Prof. Dr. Eşref ADALI Yrd. Doç. Dr. Şule Gündüz Öğüdücü SürümA
TEKNOLOJİ FAKÜLTESİ MEKATRONİK MÜHENDİSLİĞİ BÖLÜMÜ
Bölüm 1 Genel Kavramlar Bilgisayarın Temel Birimleri Bilgi Saklama
Atama ve Girdi/Çıktı Komutları
FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ
BPR152 ALGORİTMA VE PROGRAMLAMA - II
8088 Kesme Operasyonu.
VERİ TABANI ve YÖNETİMİ
Bilgisayar ? BİL 110 Bilgisayara Giriş Öğrt. Gör. Dr. Ahmet Cengizhan Dirican Bilgisayar Müh. Böl.
Programlar Sabit diskte saklanır Sabit diskten veri okumak çok yava ş oldu ğ u için programlar çalı ş tırılmadan önce RAM’e yüklenir.
ORHAN EREN İLKOKULU 1-A.
Bölüm 3 – Yapısal Programlama
Örnek Bİr VerİtabanI TasarImI
Bölüm 2 C Dilinin Temelleri Genel Kavramlar
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
Yapılan Hizmetlerin Bilgisayara İş lenmesi Klinikten toplanmı ş olan hizmet formlarını klinik sekreterli ğ ine getirip bilgisayarda islenmektedir. Yapılan.
HTML (HYPER TEXT MARKUP LANGUAGE) TEMEL ETİKETLERİ
CSS Birimleri.
KISITLAMALAR (Constraints)
DERS 12 PIC 16F84 ile KESME (INTERRUPT) KULLANIMI
BPR152 ALGORİTMA VE PROGRAMLAMA - II
TEST – 1.
Temel Bilgisayar Yapısı ve Devreleri
Mikroişlemciler ve Mikrobilgisayarlar
3- IP ADRESLEME Yrd. Doç. Dr. Ersoy ÖZ.
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
8 ? E K S İ L E N EKSİLEN _ 5 5 ÇIKAN FARK(KALAN) 8.
Akış Kontrol Mekanizmaları
OLTA İLE BALIK TUTMA UYGULAMASI
DERS 14 PIC 16F84 ile EEPROM VERİ BELLEĞİ KULLANIMI.
Soru 4.6 Bir sayısal bilgisayar sisteminde seçicilerle oluşturulmuş 32 bitlik 16 yazaçlı veri yolu sistemi var. Her seçici için kaç seçim girişi kullanılır?
OLTA İLE BALIK TUTMA UYGULAMASI
Sibel SOMYÜREK SQL Görev. SQL – 14a Egitselyazilim veri tabanındaki içerik tablosuna yeni bir kayıt ekleyin,
Diziler Adres Kavramı Nesnelerin Adresleri sizeof Operatörü
TOP SEKTİRME UYGULAMASI
TOP SEKTİRME UYGULAMASI-2
BPR152 ALGORİTMA VE PROGRAMLAMA - II Öğr. Gör. Bayram AKGÜL
Temel Giriş/Çıkış Fonksiyonları
Mikroişlemciler Sayı gösterimleri.
DONANIM.
Ram’ı temsil eder. Bu veri tiplerine StackPointer yoluyla ula ş ıldı ğ ı için verinin ba ş langıç adresi, biti ş adresi ve kapladı ğ ı alan bilinmelidir.
8086 Programlama – Kısım III Prosedürler
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
Intel 8086 Mimarisi Adresleme Modları
Ali AKMAN Subroutine, Interrupt, LPM BİL325  C Ders - 5.
ENDÜSTRİYEL GÖMÜLÜ BİLGİSAYAR SİSTEMLERİ
DOSYA MENÜSÜ.
8086 Programlaması – Kısım 1 1 Mikroişlemciler. İçerik 2 Hafıza Eri ş imi MOV komutu De ğ i ş kenler, Array’ler, Sabitler Aritmetik ve Mantık Komutları.
Kesmeler (Interrupts)
8086 Programlama – Kısım IV Stack’ler, Makro’lar
Bilgisayar Donanım ve Sistem Yazılımı
8086 Programlama – Kısım III Prosedürler
Mikroişlemciler Adresleme Modları.
Bilgisayar Donanım ve Sistem Yazılımı
Mikroişlemci Sistemleri
DERS 12 PIC 16F84 ile KESME (INTERRUPT) KULLANIMI
MİKROİŞLEMCİLER VE MİKROBİLGİSAYARLAR
PINAR KARTALO Ğ LU.  Belirli sayıda i ş lemlerin tekrarlanması için kullanılan döngülerdir. for döngüleri ba ş langıç ve biti ş de ğ erleri arasında.
MİKROİŞLEMCİLER VE MİKROBİLGİSAYARLAR
Sunum transkripti:

Kesmeler (Interrupts) Mikroişlemciler Kesmeler (Interrupts)

İçerik Kesmeler

Örnek 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.

Örnek: Otobüs sürücüsü 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ü, Bir sonraki durağa doğru yaklaş ve dur Kapıyı aç Yolcuların çıkması için bekle Kapıyı kapat 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.

8086’daki kesmeler 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.

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

8086’daki kesmeler Kesme oluştuğu zaman, CPU, mevcut komutu tamamladıktan sonra: 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. IP, CS register’ları ile bayrak register’ı, stack’te saklanır. N, kesme sayısı olmak üzere 4*N hafıza adresine atlama yapılır. Bu adreste bulunan ISR çalıştırılır. ISR’nin sonunda, IRET komutu kullanılarak IP, CS ve bayrak register’larının ilk durumları geri çağrılır.

Kesme Atlama Tablosu 20 bitlik 8086 hafıza haritasının en altında Kesme Atlama Tablosu bulunur. Interrupt Number Address Memory 2 000B-000A IP 0009-0008 CS 1 0007-0006 0005-0004 0003-0002 0001-0000 ISR’nin bulunduğu yerin tam adresi

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

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

Alt fonksiyonlar 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 = 65536 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.

INT 10h 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.

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

İmleç pozisyonunu değiştirmek 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

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

Karakter ve özellik yazma 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ğı.

Özellikler 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. HEX BIN Color 0000 Black 8 1000 Dark Gray 1 0001 Blue 9 1001 Light Blue 2 0010 Green A 1010 Light Green 3 0011 Cyan B 1011 Light Cyan 4 0100 Red C 1100 Light Red 5 0101 Magenta D 1101 Light Magenta 6 0110 Brown E 1110 Yellow 7 0111 Light Gray F 1111 White

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