Program Kontrol Komutları. Mikroişlemciler ve Mikrobilgisayarlar 1



Benzer belgeler
Adresleme Modları. Mikroişlemciler ve Mikrobilgisayarlar

Ders 3 ADRESLEME MODLARI ve TEMEL KOMUTLAR

MTM 305 MĠKROĠġLEMCĠLER

Bahar Dönemi. Öğr.Gör. Vedat MARTTİN

Özet DERS 5. Şu ana kadar bilmeniz gerekenler... İşaretsiz Çarpma. Bayraklardaki Durumlar. İşaretli Çarpma

MTM 305 MİKROİŞLEMCİLER

MTM 305 MİKROİŞLEMCİLER

İŞLEMCİ DURUM KAYDEDİCİSİ (PROCESSOR STATUS REGISTER)

Sistem Programlama. Kesmeler(Interrupts): Kesme mikro işlemcinin üzerinde çalıştığı koda ara vererek başka bir kodu çalıştırması işlemidir.

MTM 305 MİKROİŞLEMCİLER

Quiz:8086 Mikroişlemcisi Mimarisi ve Emirleri

8086 Mikroişlemcisi Komut Seti

Bölüm 3: Adresleme Modları. Chapter 3: Addressing Modes

İSTANBUL TİCARET ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ MİKROİŞLEMCİLİ SİSTEM LABORATUARI İKİLİ TABANDA ÇOK BAYTLI ÇARPMA

8086 Mikroişlemcisi Komut Seti

BM-311 Bilgisayar Mimarisi. Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü

MTM 305 MĠKROĠġLEMCĠLER

İSTANBUL TİCARET ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ MİKROİŞLEMCİLİ SİSTEM LABORATUVARI KESMELİ GİRİŞ/ÇIKIŞ

BM-311 Bilgisayar Mimarisi

DENEY III RAPORU MİKROİŞLEMCİ UYGULAMALARI LABORATUVARI

BM-311 Bilgisayar Mimarisi

Aritmetiksel Komutlar

Mikroişlemcili Sistemler ve Laboratuvarı 8.Hafta

Mikrobilgisayar Mimarisi ve Programlama

Mikrobilgisayar Donanımı

KOMUT TABLOSU İLE İLGİLİ AÇIKLAMALAR:

b) Aritmetik İşlem Komutları

BM-311 Bilgisayar Mimarisi

Bölüm 5: ARITMETIK VE MANTIK IŞLEM YAPAN KOMUTLAR

BIL 362 Mikroilemciler Dersi Arasınav Cevapları 3 Temmuz 2007

x86 Ailesi Mikroişlemciler ve Mikrobilgisayarlar

BM-311 Bilgisayar Mimarisi

8086 dan core2 ya yazaç yapısını tanımak. Bayrak yazacının içeriğinde yer alan bayrakların görevlerini tanımlamak. Real mod çalışmada bellek

BM-311 Bilgisayar Mimarisi

JZ TEST3 (7/3) 1 makine çevrimi süresi

Çalışma Açısından Bilgisayarlar

Ders Özeti. Ders 2. PC nin İç Organizasyonu. Mikroişlemcinin Organizasyonu. Basitçe İşlemciyi Oluşturan Parçalar. Mikroişlemciler

MTM 305 MĠKROĠġLEMCĠLER

BIL 362 Mikroilemciler Dersi Final Sınavı Cevapları

Mikroişlemcili Sistemler ve Laboratuvarı 6.Hafta

MTM 305 MĠKROĠġLEMCĠLER

Von Neumann Mimarisi. Mikroişlemciler ve Mikrobilgisayarlar 1

MC6800. Veri yolu D3 A11. Adres yolu A7 A6 NMI HALT DBE +5V 1 2. adres onaltılık onluk bit 07FF kullanıcının program alanı

DERS 12 PIC 16F84 ile KESME (INTERRUPT) KULLANIMI İÇERİK

MIKRODENETLEYICILER. Ege Üniversitesi Ege MYO Mekatronik Programı

Debug Komutları C:\>DEBUG - Çizgi işareti artık debug programının komut kabul etmeye hazır olduğunu belirtmektedir.

ASENKRON (Eş Zamanlı Olmayan) HABERLEŞME ARA YÜZEYİ

2011 Bahar Dönemi. Öğr.Gör. Vedat MARTTİN

(5 soru seçerek cevaplandırınız. Seçilen soru numaralarını yukarıdaki çizelgede işaretleyiniz) Sınav süresi 100 dakikadır. Başarılar dileriz.

Komutların Yürütülmesi

Araş. Gör. Abdulkerim ŞENOĞLU Araş. Gör. Mehmet AYAN Araş. Gör İbrahim Kök. BM 310 Mikroişlemciler Dersi Laboratuvarı (LAB2)

Bölüm 4 Veri Aktarma Komutları

MIKRODENETLEYICILER. Ege Üniversitesi Ege MYO Mekatronik Programı

Mikroişlemci ve Yapısı. Mikroişlemciler ve Mikrobilgisayarlar

8051 Ailesi MCS51 ailesinin orijinal bir üyesidir ve bu ailenin çekirdeğini oluşturur çekirdeğinin temel özellikkleri aşağıda verilmiştir:

EEM 306 Mikroişlemciler ve Lab. Doç.Dr. Mehmet SAĞBAŞ

MİKROBİLGİSAYAR SİSTEMLERİ. Teknik Bilimler Meslek Yüksekokulu

Assembly Dili Nedir? Assembly dili biliyorum derken hangi işlemci ve hangi işletim sistemi için olduğunu da ifade etmek gerekir.

MTM 305 MĠKROĠġLEMCĠLER

İSTANBUL TİCARET ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ MİKROİŞLEMCİLİ SİSTEM LABORATUARI MİKROİŞLEMCİLİ A/D DÖNÜŞTÜRÜCÜ

Assembly Programlama Dili T e m m u z

İŞLETİM SİSTEMİ İşletim sistemi kullanıcıyla bilgisayar donanımı arasında iletişim sağlayan programdır.

8051 Ailesi MCS51 ailesinin orijinal bir üyesidir ve bu ailenin çekirdeğini oluşturur çekirdeğinin temel özellikkleri aşağıda verilmiştir:

İşletim Sistemlerine Giriş

BÖLÜM 6 Seri Port Đşlemleri

HAFTA 1 KALICI OLMAYAN HAFIZA RAM SRAM DRAM DDRAM KALICI HAFIZA ROM PROM EPROM EEPROM FLASH HARDDISK

Mikrobilgisayar Mimarisi ve Programlama

BİLGİSAYAR MİMARİSİ. Bilgisayar Bileşenleri Ve Programların Yürütülmesi. Özer Çelik Matematik-Bilgisayar Bölümü

BÖLÜM 7 Kesmeler.

K uark projesi. Temel Özellikler :

Bahar Dönemi BIL382 Mikroişlemcili Sistem Lab. Vize Sınavı,

CSD İŞLETİM SİSTEMİNDE SİSTEM FONKSİYONLARININ ÇAĞIRILMASI

Şekil. 64 Kelimelik Yığıtın Blok Şeması

MTM 305 MĠKROĠġLEMCĠLER

Bildiğiniz gibi programları oluşturan kodlar ve veriler hafızaya yüklendikten sonra işlemci tarafından satırsatır icra edilirler.

KASIRGA -4 Buyruk Tasarımı Belgesi Ankara

MİKROBİLGİSAYAR SİSTEMLERİ VE ASSEMBLER

Linux Assembly Programlamaya Giriş

Assembly. Programlama Dili. T e m m u z

Bilg.Mimarisi-I 4.HAFTA VERI AKTARIMI VE ISLEME. Bilgisayar buyrukları 3 kategoride sınıflandırılabilir.

Assembly Language Programming

Bileenler arasndaki iletiim ise iletiim yollar ad verilen kanallar yardm ile gerçekleir: 1 Veri Yollar 2 Adres Yollar 3 Kontrol Yollar

İŞLETİM SİSTEMİ KATMANLARI (Çekirdek, Kabuk ve diğer temel kavramlar) Öğr.Gör. Dr. Dr. Şirin KARADENİZ

İLERI MIKRODENETLEYICILER. Ege Üniversitesi Ege MYO Mekatronik Programı

80x86 MICROPROCESSOR Instructions

ÖZET. Lojiksel ve Hiziksel Hafıza. x86 byte düzeni nın Fiziksel Hafıza Yapısı. Ders 3. Temeller

ÖNEMLİ AÇIKLAMA: Bu derslerdeki sunumların kısa bir özetini göstermek için hazırlanmıştır. Burada türkçeleştirilmemiş olan kısımlar sorulmayacak

Çok sayıda adım motoru tasarımı olmasına rağmen, bu motorlar iki değişik temel tür altında toplanabilir: değişken relüktanslı veya hibrid yapılı.

3/7/2011. ENF-102 Jeoloji 1. Tekrar -- Değişken Tanımlamaları (Definition) ve Veri Türleri (Data Type) Veri Tanımları ve Mantıksal Đşlemler

BM 375 Bilgisayar Organizasyonu Dersi Vize Sınavı Cevapları 10 Nisan 2009

BÖLÜM in Bellek Organizasyonu

LCD (Liquid Crystal Display)

x86 Ailesi Mikroişlemciler ve Mikrobilgisayarlar

İSTANBUL TİCARET ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ MİKROİŞLEMCİLİ SİSTEM LABORATUVARI OLAYLARI ZAMANLAMA

DERS 13 PIC 16F84 ile DONANIM SAYICI KULLANIMI İÇERİK KESME

BM-311 Bilgisayar Mimarisi

DIGIAC 2000 Deney Seti PAT İŞLEMCİ KARTI :

KASIRGA 4. GELİŞME RAPORU

DERS 7 PIC 16F84 PROGRAMLAMA İÇERİK. PIC 16F84 örnek programlar Dallanma komutları Sonsuz döngü

Dr. Feza BUZLUCA İstanbul Teknik Üniversitesi Bilgisayar Mühendisliği Bölümü

Transkript:

Program Kontrol Komutları Mikroişlemciler ve Mikrobilgisayarlar 1

Bu başlık, altında incelenecek olan komutlar program akışını oluşan bazı koşullara göre değiştirmektedirler Program akışında meydana gelen değişiklik genellikle bir CMP veya TEST komutuyla yapılan bir testin sonucuna göre gerçekleştirilir Mikroişlemciler ve Mikrobilgisayarlar 2

I) Dallanma (Branch) İşlemi JMP (jump) komutu ile belleğin bir bölümünden diğer bir bölümüne program akışı yönlendirilebilir Dallanma işlemi direkt olarak yapılabileceği gibi belli bir koşula göre de yapılabilir Mikroişlemciler ve Mikrobilgisayarlar 3

Doğrudan Dallanma JMP komutunun 3 farklı kullanım şekli vardır Bunlar : a)kısa (Short) Dallanma b)yakın (Near) Dallanma c)uzak (Far) Dallanma Mikroişlemciler ve Mikrobilgisayarlar 4

JMP SHORT_ADR Op-Code Operand 2 byte JMP NEAR_ADR Aynı Segment İçerisinde Gerçekleştirilen Dallanma Op-Code Adr(LOW) Adr(HIGH) 3 byte JMP FAR_ADR Bir segmentten diğer bir segmente dallanma gerçekleştirir Op-Code OFFSET(LOW) OFFSET(HIGH) SEGMENT(LOW) SEGMENT(HIGH) 5 byte Mikroişlemciler ve Mikrobilgisayarlar 5

Dallanma komutu, 16 bit bir saklayıcıyı operand olarak kullanabilir Bu tür dallanma, dolaylı dallanmadır ve saklayıcının içindeki adres dallanma adresi olarak kullanılır Saklayıcının adresi IP a alınır ve program bu adresten itibaren yürütülür Örn: ADD SI,SI ; Tablodaki dallanma adresleri 2 byte lık aralıklarla düzenlenmiştir ADD SI, OFFSET TABLO ; Dallanılacak konumun adresi MOV AX, CS:[SI] ; JMP AX ; Altprograma Dallan TABLO : DW SUB0 DW SUB1 DW SUB2 DW SUB3 Mikroişlemciler ve Mikrobilgisayarlar 6

Aynı işlem indisli adresleme kullanılarak da gerçekleştirilebilir ADD SI,SI ADD SI, OFFSET TABLO JMP CS: [SI] ; Tablodaki dallanma adresleri 2 byte lık aralıklarla düzenlenmiştir ; Dallanılacak konumun adresi ; Altprograma Dallan TABLO : DW SUB0 DW SUB1 DW SUB2 DW SUB3 Mikroişlemciler ve Mikrobilgisayarlar 7

Koşullu Dallanma Şartlı dallanma komutlarının ilk harfi J ile başlar ve takip eden 1,2 yada 3 harf şartı gösterir Genele olrak JXXX şeklinde gösterilebilir Duruma bağlı olan dallanmalar; İşaret (Sign-S), Sıfır (Zero-Z), Elde (Carry-C), Eşlik (Parity-P) ve taşma (Overflow-O) bayraklarını test ederler Eğer test edilen durum doğru ise, program akışı dallanma komutu ile belirtilen adresten devam eder Eğer durum yanlış ise, dallanma gerçekleşmez ve sıradaki komut icra edilir Mikroişlemciler ve Mikrobilgisayarlar 8

Bayrakların Durumunu Test Etmek İçin Kullanılan Koşullu Dallanma Komutlar Mikroişlemciler ve Mikrobilgisayarlar 9

İşaretsiz Sayılarda Kullanılan Koşullu Dallanma Komutları Mikroişlemciler ve Mikrobilgisayarlar 10

İşaretli Sayılarda Kullanılan Koşullu Dallanma Komutları Mikroişlemciler ve Mikrobilgisayarlar 11

ÖRNEK MOV AL, 10 ; AL=Ah MOV BL, 15 ; BL=Fh CMP AL,BL ; JNS TABLO CMP işleminin sonucunda negatif bir değer elde edileceği için S bayrağı kurulur (S=1) Ayrıca ilk 4 bitten barrow oluşacağı ve 8 bitin sonunda da barrow oluşacağı için A ve C bayrakları kurulur Bu durumda dallanma gerçekleşmeyecek ve program bir sonraki komutu yürütecektir TABLO : DW SUB0 DW SUB1 DW SUB2 DW SUB3 Mikroişlemciler ve Mikrobilgisayarlar 12

MODEL SMALL STACK32 DATA BUFFER DB BİLGİSAYAR MÜHENDİSLİĞİ,0Ah,0Dh,24h MESAJ DB? CODE ANA PROC TEKRAR: MOV AH,01h ; 21 nolu interruptın 01 nolu fonksiyonu klavyeden karakter okur ANA ENDP INT 21h ; Okunan karakterin ASCII karşılığı AL kaydedicisindedir MOV MESAJ[SI],AL; Karakter DS:MESAJ alanına sırasıyla yerleştiriliyor INC SI CMP AL, 30h ; Girilen karakter 0 mı? (0 ın ASCII karşılığı 30h) JNZ TEKRAR; Sıfır olana kadar döngü icra edilecek DEC SI ; MOV MESAJ[SI],24h; En son girilen 0 karakteri string sonu karakteri ile değiştiriliyor MOV DX, OFFSET MESAJ MOV AH, 09h INT 21h MOV AH,4Ch INT 21h END ANA Mikroişlemciler ve Mikrobilgisayarlar 13

LOOP Komutu Loop komutu CX saklayıcısını azaltma ile duruma bağlı dallanma işlemlerinin birleşimidir Her seferinde CX saklayıcısı 1 azaltılır CX=0 olduğu durumda döngüden çıkılarak normal akış sırası takip edilir MOV SI, OFFSET BLOCK1 TEKRAR: MOV DI, OFFSET BLOCK2 MOV CX,100 LODSW ; Block1 den veri okunmakta (DS:SI in işaret ettiği yerden) ADD AX, ES:[DI]; Block2 verisi ile topla STOSW; ES:[DI] ile belirtilen Block2 bölgesinde sakla LOOP TEKRAR Mikroişlemciler ve Mikrobilgisayarlar 14

II)ALTPROGRAMLAR (SUBROUTINES) Altprogram hafıza alanından tasarruf sağlar ve altprogramlar içeren bir programı yazmak daha az zaman aldığı için kod yazımını kolaylaştırır Altprogram ile ana program arasındaki parametre aktarımı, alt program çağırma (CALL) ve geri dönüş (RET) işlemlerinde fazladan zaman gerektirir Bir altprogram CALL komutu ile çağırılırken, yığın (Stack) hafıza, CALL komutundan sonraki komutun adresini saklamada kullanılırret komutu ile yığından okunan dönüş adresinden itibaren program çalışmasına devam eder Mikroişlemciler ve Mikrobilgisayarlar 15

Altprogram yazılırken PROC direktifi ile başlar ve ENDP direktifi ile son bulur Bu yapı, bir altprogramı diğerlerinden ayrılmasını sağlar PROC direktifi, altprogramın tipini belirten NEAR (segment içi) veya FAR (segmentler arası) direktifini takip eder SUB0 PROC NEAR RET SUB0 ENDP SUB1 PROC FAR RET SUB1 ENDP Mikroişlemciler ve Mikrobilgisayarlar 16

SUB0 PROC NEAR RET Opcode(C3h) SUB0 ENDP SUB1 PROC FAR RET Opcode(CBh) SUB1 ENDP İki altprogram arasındaki fark, assembler tarafından RET komutu için üretilen op-code da bulunur Yakın RET, yığından 16 bitlik bir sayı çeker ve bunu geri dönebilmek için IP e yerleştirir Uzak RET, yığından 32 bitlik bir sayı çeker ve bunu geri dönebilmek için IP ve CS e yerleştirir Mikroişlemciler ve Mikrobilgisayarlar 17

CALL Komutu CALL komutu program akışını bir program akışını bir altprograma aktarır Bu komutun JMP komutundan farkı, bir CALL komutu yürütülürken geri dönüş adresi otomatik olarak yığında saklanır Altprogram sonundaki RET komutuyla bu dönüş adresi yığından çekilir CALL NEAR_ADR Op-Code Adr(LOW) Adr(HIGH) 3 byte CALL FAR_ADR Altprogramın farklı bir segmette olması durumunda Op-Code OFFSET(LOW) OFFSET(HIGH) SEGMENT(LOW) SEGMENT(HIGH) 5 byte Mikroişlemciler ve Mikrobilgisayarlar 18

CALL komutu bir saklayıcı operand olarak kullanılabilir Örn: CALL BX ; Bu komutta ilk önce o anki IP değeri yığına aktarılır ve BX registerindeki ofset adres, o anki CS de bulunan bir altprogram çağırımı için IP a yerleştirilir Mikroişlemciler ve Mikrobilgisayarlar 19

Dolaylı hafıza adresi kullanarak da bir altprogramın çağrılması mümkündür TABLO: DW SUB0 ADD DI,DI DW SUB1 MOV BX, OFFSET TABLO ; Tablonun başlangıcına işaret etmekte CALL CS:[BX+DI] ; Alt programın çağrımı SUB0 PROC NEAR RET SUB0 ENDP SUB1 PROC NEAR RET SUB0 ENDP Burada CS alanında bulunan alt programlara erişilmektedir Eğer ki; CALL FAR PTR [SI] gibi bir ifade kullanılsaydı DS alanında SI ile işaretli 32 bitlik bir adres okunur ve bu adrese ile belirtilen yere dallanılarak alt program icra edilir Mikroişlemciler ve Mikrobilgisayarlar 20

RET Komutu RET komutu, yığın hafızadan, yakın dönüş için 16 bit bir sayı veya uzak dönüş için 32 bit sayı geri çeker Bu sayıyı; yakın dönüşte IP saklayıcısına, uzak dönüşte ise IP ve CS çiftine yerleştirir Mikroişlemciler ve Mikrobilgisayarlar 21

III)Kesmeler (Interrupts) Sistemde meydana gelen kesmeleri 3 farklı incelemek mümkündür Bunlar ; kategori altında a)donanımsal Kesmeler b)içsel Kesmeler c)yazılım Kesmeleri Mikroişlemciler ve Mikrobilgisayarlar 22

Donanımsal Kesmeler Yazılım kesmeleri programcı tarafından çağırılırken donanım kesmeleri elektriksel yolla çağırılmaktadırher mikro işlemcinin ve mikro denetleyicinin donanım kesmesi için bir INT ucu vardır Bu INT ucu aktiflendiğinde (elektriksel olarak 5v ya da 0v gerilimle uygulanması durumunda) 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 oluşturulmasına IRQ (interrupt request) denir Örn: Klavye üzerindeki bir tuşa basılması Böyle bir durumda CPU, yapmakta olduğu işi bırakıp basılan tuşun değerini değerlendirecektir Bu tür kesmeler, 8259A olarak isimlendirilen elektronik devre yardımıyla kontrol altında tutulur Mikroişlemciler ve Mikrobilgisayarlar 23

Sık kullanılan bazı donanımsal kesmeler: Mikroişlemciler ve Mikrobilgisayarlar 24

İçsel Kesmeler Mikro işlemcinin bir makine kodunu çalıştırırken problemle karşılaştığında kendi kendisini çağırdığı kesmelerdir Diğer bir deyişle bazı geçersiz program sonuçlarının elde edilmesi halinde CPU nun kendisi tarafından oluşturulmaktadır Örn: 0 ile bölüm şeklindeki bir işlem sonucunda meydana gelen meydana gelen kesme Mikroişlemciler ve Mikrobilgisayarlar 25

Yazılımsal Kesmeler Bu tür kesmeler, RAM veya ROM da bulunan alt rutinlerin çağrılmasıyla oluşturulur Programcı tarafından sık sık kullanılırlar Yazılım kesmelerinin normal fonksiyon çağırmalarından işlevsel bir farkı yokturbunlar programcı tarafından yazılan INT hh makine komutuyla koda dahil edilirler Kesme çağırma, uzak CALL komutuna benzer, çünkü geri dönüş adresi (IP/CS) ikilisine sırayla yerleştirilir Mikroişlemciler ve Mikrobilgisayarlar 26

Kesme vektörü, mikroişlemci gerçek modda (real mode) çalışırken, hafızanın ilk 1024 byte lık alanında (00000h-003FFh) saklı olan 4 byte lık bir adrestir Dolayısıyla 256 farklı kesme vektörü bulunur Her kesme vektörü, bir kesme hizmet programının adresini oluşturan IP ve CS adresi içerir Kesme Vektörü IP için CS için Hafızada kesme alt programın bulunduğu adresi işaret eder 2 byte 2 byte İlk 32 kesme vektörü (0-31) 8086-80486 ve daha sonraki işlemciler için ayrılmıştır Geriye kalan kesme vektörleri (32-355) kullanıcı içindir Ayrılmış olan vektörlerin bazıları, bölme hatası veya programın yürütümü sırasında oluşan hatalar içindir Kod numaraları 32 ile 96 arasında yer alan interrutptlar DOS interruptlarıdır Mikroişlemciler ve Mikrobilgisayarlar 27

Mikroişlemciler ve Mikrobilgisayarlar 28

Kesme Komutları 3 farklı kesme komutu bulunmaktadır Bunlar: a)int b)into c)int3 Bu komutlar gerçek modda vektör tablosundan (bkz slayt 28) bir vektör okur ve sonra da bu vektörle adreslenen kesme hizmet programını çağırır Korumalı modda ise IDT (Interrrupt Descriptor Table) den bir tanımlayıcı okur Mikroişlemciler ve Mikrobilgisayarlar 29

a) INT Komutu Programcının kullanımına sunulan 256 farklı kesme komutu bulunmaktadır INT 21h Komutu (Desimal 33kesme vektörü) Op-code Operand KesmeVektör Tablosu Bellek 0 1 byte 1 byte 1 2 3 Kesme Alt Programı 33 IP:CS IRET 4 byte 255 Mikroişlemciler ve Mikrobilgisayarlar 30

Kesme vektörünün adresi hesaplanırken, kesme tipi numarası 4 ile çarpılır Örn: 21h x4 = 84h ; Interrupt 21 i kullandığımızda belleğin ilke 1024 bytenın içinden 132 sırada olan (84h) alana gidilecek burada 4 byte lık adres ile belirtilen adrese gidilip kesme altprogramı icra edilecektir INT 21h Komutu (Desimal 33kesme vektörü ve adresi 84h) Bellek KesmeVektör Tablosu Op-code Operand 00000h 1 byte 1 byte Kesme Alt Programı 00084h IP:CS 4 byte IRET 003FFh Mikroişlemciler ve Mikrobilgisayarlar 31

Bir yazılım kesmesi yürütüldüğünde aşağıdaki işlemler gerçekleşir: a) Flag registeri stack üzerine push edilir b) Trap bayrağı resetlenir c) Interrupt bayrağı resetlenir d) CS registeri stack üzerine pust edilir e) INT komutu ile kullanılan interrupt numarası 4 ile çağılır ve X olarak gösterilen bir değer elde edilir f) 0000 segmentinin X no lu offsetinde yer alan ikinci word (2 16 bitlik değer) CS registerine aktarılır g) IP registeri stack üzerine push edilir h) X no lu offset de yer alan ilk word (1 16 bitlik değer) IP registerine aktarılır Yazılım kesmeleri, genellikle sistem programlarını çağırmada kullanılır Mikroişlemciler ve Mikrobilgisayarlar 32

IRET Daha önce incelenen RET komutundan farklı olarak, IRET komutu ile aşağıdaki işlemler gerçekleştirilir a)ip registerinin eski değeri stack üzerinden pop edilir b)cs registerinin eski değeri stack üzerinden pop edilir c)flag registerinin eski değeri, stack üzerinden pop edilir Korumalı moddaki karşılığı IRETD dir Mikroişlemciler ve Mikrobilgisayarlar 33

INTO Taşma (Overflow) durumunda oluşan bir kesmedir Eğer Overflow=0 ise INTO komutu herhangi bir işleme neden olmaz Eğer Overflow=1 ise 4 numaralı kesmeyi çağırır Çalışma mantığı JO (Jump Overlow) komutu ile benzerlik gösterir Mikroişlemciler ve Mikrobilgisayarlar 34

CLI ve STI (Clear Interrupt ve Set Interrupt Flag) Bu komutların kullanım amacı, mikroişlemcinin interrupt sinyallerine cevap vermesini veya vermemesini sağlamaktır CLI komutu kullanıldığında I=0 olur ve mikroişlemci NMI(Nonmaskable Interrupts) olarak isimlendirilen interruptların dışındaki hiçbir interrupt isteğine cevap vermeyecektir STI komutu kullanıldığında I=1 olur ve mikroişlemci tekrar gelen interrupt isteklerine cevap verecektir Mikroişlemciler ve Mikrobilgisayarlar 35