Kesmeler(Interrupts): Kesme mikro işlemcinin üzerinde çalıştığı koda ara vererek başka bir kodu çalıştırması işlemidir. Kesmeler çağırılma kaynaklarına göre 3 kısma ayrılırlar: Yazılım kesmeleri Donanım kesmeleri İçşel kesmeler
Kesmeler(Interrupts): Yazılım kesmeleri(software interrupts) Yazılım kesmelerinin normal fonksiyon çağırmalarından işlevsel bir farkı yoktur.bunlar programcı tarafından yazılan INT hh makine komutuyla koda dahil edilirler. Donanım kesmeleri(hardware interrupts) Yazılım kesmeleri programcı tarafından çağırılırken donanım kesmeleri elektriksel yolla çağırılmaktadır.her mikro işlemcinin ve mikro denetleyicinin donanım kesmesi için bir INT ucu vardır. Bu INT ucu uyarıldığında (uyarılması elektriksel olarak 5v ya da 0v gerilimle uygulanması anlamına gelir) mikro işlemci o anda çalıştırılmakta olan koda ara verir ve başka bir kodu uygulamaya başlar.yani bu tur kesmelerde kesmenin oluş mekanizması dışsal ve elektriksel olaylara bağlıdır. Bu yolla donanım kesmesi olusturulmasına IRQ (interrupt request) denir. İçsel kesmeler(internal interrupts) Mikro işlemcinin bir makine kodunu çalıştırırken problemle karşılaştığında kendi kendisini çağırdığı kesmelerdir.
Kesmeler(Interrupts): Asagıdaki tabloda sık kullanılan IRQ seviyeleri açıklamalarıyla birlikte sunulmakta. IRQ 0 : Sistem zamanlayıcısı Çevre Birimleri tarafından Erisilemez IRQ 1 : Klavye Çevre Birimleri tarafından Erisilemez IRQ 2 : 8-15 numaralı IRQ'lar ikinci İkinci 8259 a bağlantı için harcanmıştır. IRQ 3 : Com2 Aynı zamanda Com4. Seri ve paralel portlar için kullanılmıştır. IRQ 4 : Com1 Aynı zamanda Com4. Seri ve paralel portlar için kullanılmıştır. IRQ 5 : Hard diskin denetimi için kullanılmıştır. IRQ 6 : Bir floppy işlemi bitirildiğinde o anda çalıştırılmakta olan programın haberdar edilmesinde kullanılır. IRQ 7 : Birinci paralel port'a atanmıştır.(lpt1) IRQ 8 : Gerçek zaman saati Çevre Birimleri tarafından Erisilemez IRQ 9 : Yönlendirilmis IRQ2 IRQ 10 : Genellikle serbesttir. Bu kesem dışsal kullanımlara açıktır. IRQ 11 : Genellikle serbesttir. Bu kesem dışsal kullanımlara açıktır. IRQ 12 : PS/2 tipi fare portu Muhtemelen IRQ12 yi kullanır. IRQ 13 : Matematik işlemciye 80287 ve 80387 matematik işlemcilerine bağlıdır. IRQ 14 : Birinci sabit disk arabirimi Birincil PCI EIDE arabirimi (HD ) IRQ 15 : İkincil sabit disk arabirimi ikincil PC EIDE arabirimi (Ayrılmıs )
Sık kullanılan Kesmeler(Interrupts): Kesme kullanım şekli, xx: 00h dan FFh ye kadar değer alır. Toplam 256 interrupt vektörü var. Bu interruptlar belleğe ilk adresten başlamak üzere yerleşir. 0. İnterrupt 00000 offset adresindedir. Diğer interruptların da bellekte yerini bulmak için 4 ile çarpılması yeterlidir. 4*10=400. Offset adresindedir. INT 0h kesmesi Bölme işleminde bölen 0 ise CPU tarafından 0. kesme çalıştırılır. Ekrana divide overflow mesajını göndererek komut satırına hatasız dönüş yapılır. INT 05h kesmesi Klavyede bulunan print-screen işlevini yerine getirir. Ekran görüntüsünü yazıcıya gönderir.
Sık kullanılan Kesmeler(Interrupts): INT 10h kesmesi Ekran ile ilgili işlemler için kullanılan kesmedir. Aşağıda ilgili fonksiyonları verilmiştir. 01 imleç formunu ayarla 02 imlecin konumlandırılması 03 imlecin pozisyonunu oku 05 aktif sayfa seçimi 06,07 ekran bölgesi kullanılan fonksiyona göre aşağı veya yukarı hareket ettirilir. 08 ekrandan bir karakter okuma(renk kodu ile birlikte) 09,0A ekrana bir karakter gönderme(renk kodu ile birlikte) 0C Grafik ekranında bir pikselin istenilen renkte görüntülenmesi sağlanır. 0E,13 imlecin bulunduğu yerde ekranan karakter yazmak
Sık kullanılan Kesmeler(Interrupts): INT 11h kesmesi Sistemde kurulu olan aygıtlar hakkında bilgiverir. AX içerisindeki her bitin bir anlamı vardır. Bit(s) ANLAMLARI 0 Kurulu disket sürücüsü (yüklenmiş ise 1) 1 80x87 coprocessor installed 3-2 Anakart üzerinde RAM in 16K(PC only) ve 64K (XT only) bankları, 5-4 Video mode 00 EGA, VGA, or PGA 01 40x25 color 10 80x25 color 11 80x25 monochrome 7-6 Sürücü sayısı 8 DMA chipinin yüklü olması(0=yüklü) (PCjr, Tandy 1400LT) 11-9 Seri portlarınsayısı 12 Game port installed 13 Seri bağlantılı printer lar,dahili modem ler (PC/Convertible) 15-14 Kurulu Paralel port sayısı
Sık kullanılan Kesmeler(Interrupts): INT 12h kesmesi Sistemin bellek büyüklüğü AX kaydedicisine KB olarak yazılır. INT 13h kesmesi Disk işlemlerinin yapıldığı BIOS kesmesidir. Aşağıda ilgili fonksiyonları verilmiştir. 00 diskin resetlenmesi 02 disk sektörlerinin okunması 03 disk sektörlerine veri yazılması 04 disk sektörlerinin test edilmesi 05 disket trackformat işlemi yapılır
Sık kullanılan Kesmeler(Interrupts): INT 16h kesmesi Klavye işlemlerinin yapıldığı BIOS kesmesidir. Aşağıda ilgili fonksiyonları verilmiştir. 00 klavyeden karakter giriş talebi 01 klavye tamponunun kontrolü 02 klavye shift durumunun öğrenilmesi 10 klavyeden karakter okuma(genişletilmiş klavyeler için) 12 klavye shift durumu(genişletilmiş klavyeler için) INT 19h kesmesi Bilgisayarı yeniden açmak için kullanılır. (CTRL-ALT-DELETE) INT 19h kesmesi Çalışılan programdan çıkılıp DOS a dönülmesini sağlar.
Sık kullanılan Kesmeler(Interrupts): INT 21h kesmesi DOS işletim sistemi için kullanılan kesmedir. Aşağıda ilgili fonksiyonları verilmiştir. 00 DOS ortamında programın sonlandırılması için 01 DOS ortamında karakter okumak için 02 DOS ortamında karakter yazmak için 05 yazıcıya karakter göndermek için 06 direk karakter okumak için 07 direk karakter girişi için 08 standart karakter girişi için 09 Ekrana string bilgilerin yazdırılma işlemi için
Sık kullanılan Kesmeler(Interrupts): INT 21h kesmesi DOS işletim sistemi için kullanılan kesmedir. Aşağıda ilgili fonksiyonları verilmiştir. 0A klavye tamponuna bilgi girişi için 0E Aktif sürücünün seçilmesi için 19 Aktif sürücünün öğrenilmesi 2A Sistem tarihinin öğrenilmesi için, 2B Sistem tarihinin değiştirilmesi için, 2C Sistem saatinin öğrenilmesi için, 2D Sistem saatinin değiştirilmesi için, 36 Disk üzerindeki boş alanların bulunması için, 39 Alt dizin oluşturmak için, 3A Alt dizin silmek için, 3B Alt dizin değiştirilmesi için, 3C Dosya oluşturulması için, 3D Dosyanın açılması için, 3E Dosyanın kapatılması için, 4C Program sonlandırma ve DOS a dönüş için,
Kesmelerin İşlevleri ve Sınıflandırılmaları: Kesmeler gerçekte makine dilinde yazılmış bir çeşit fonksiyonlardır. Çağırılması için bir programlama diline gereksinim yoktur makine dilinde çağırılabilir. Kesmeler işlevleri, ne göre intel sisteminde 3 kısımda incelenebilir. BIOS(basic input-output system) kesmeleri DOS kesmeleri Özel kesmeler
Kesmelerin İşlevleri ve Sınıflandırılmaları: BIOS KESMELERİ :1 mb adres alanının son 64 K'sı olan(f0000-fffff) EPROM içerisinde bulunan makine dilinde yazılmış kodlardır. EPROM içerisindeki kesme kodlarının bulunduğu bölgeye BIOS denir. Kodu burada bulunan kesmeler çeşitli kontrol kartlarının programlayarak işletim sisteminden bağımsız çok temel işlemleri gerçekleştirmektedir. BIOS kesmeleri video, aşağı seviyeli disk işlemleri, klavye işlemleri gibi işletim sistemine bile gereksinim duymayan çok temel işlemleri gerçekleştirmektedir. DOS KESMELERİ :DOS'un belleğe yüklenmesiyle yaratılırlar, bütün DOS işlemleri birtakım DOS kesmelerinin çağırılmasıyla sağlanmaktadır. 21h numaralı kesme DOS'un temel bütün fonksiyonlarını yerine getirmektedir. ÖZEL KESMELER :Özel bazı programların belleğe yüklediği kesme kodlarıdır. Örneğin mouse işlemleri için 33h kesmesi kullanılır (dos'ta). Ancak mouse.com programının yüklenmesiyle bu kesme kodları belleğe yüklenir.
Kesmelerin İşlevleri ve Sınıflandırılmaları: Toplam kesme sayısı 256 olmasına karsın bir kesme koduna geçtikten sonra o kod içersinde ismine fonksiyon denilen alt kodlar bulunabilir.fonksiyonlar da alt fonksiyonlara ayrılabilirler. Genellikle fonksiyon numaraları AH alt fonksiyon numaraları da AL register'ının içersinde kesme çağırılmadan önce yazılır.bazı kesmelerin çok sayıda fonksiyon ve alt kesmeleri olduğu halde bazı kesmelerin hiç fonksiyonu ya da alt fonksiyonları yoktur. Bir kesme öğrenebilmek için: 1-)Kesmenin ne iş yaptığını bilmek gerekir. 2-)Kesmenin numarasını, fonksiyon ve alt fonksiyon numarasını öğrenmek gerekir. 3-)Kesmenin parametrelerinin neler olduğu ve hangi register'lara yerleştirilmesi gerektiği öğrenilmelidir. 4-)Geri dönüş değerinin ne anlama geldiği ve nerelere yerleştirileceğinin bilinmesi gerekir.
IBM PC'de (8088 CPU tabanlı) IBM "8259 Interrupt Controller" kullandı. Bu entegre 8 interupt kanalına sahipti (0-7). Bu IBM AT model PC 2 adet interupt controller kullanıyordu. İkinci controller ilk controllerin 2. interupt kanalına bağlanmıştı (cascaded). İkinci controller daki interupt hatları da 8 den 15 kadar numaralandı. 2 numaralı kanal yukarıda anlatılan bağlantı nedeniyle kullanılamaz haldedir. Uyumluluğun korunması için birinci controller üzerindeki 2 numaralı kanal, ikinci controller a 9 nolu kanaldan bağlıdır. Eğer bilgisayarınızda herhangi bir aygıt 2 nolu interup için ayarlanmışsa, aslında 9 numaralı interupt'ı kullanıyor demektir.