Kesmeler (Interrupts)

Slides:



Advertisements
Benzer bir sunumlar
Programming 8086 – Kısım II Program Akışı ve Döngüler
Advertisements

Kesmeler (Interrupts)
TEKNOLOJİ FAKÜLTESİ MEKATRONİK MÜHENDİSLİĞİ BÖLÜMÜ
Atama ve eşleme (eşleştirme) problemleri (Matching and Assignment problems)
BTP205 – Görsel Programlama I
FONKSİYONLAR İbrahim Onur Sığırcı.
8086 Programlama – Kısım III Prosedürler
Intel 8086 Mimarisi Adresleme Modları
Programlama Fonksyionları
COSTUMES KILIKLAR (KOSTÜMLER)
Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
Veri Yapıları ve Algoritmalar
BM-305 Mikrodenetleyiciler Güz 2015 (6. Sunu) (Yrd. Doç. Dr. Deniz Dal)
BİLGİSAYAR PROGRAMLAMA Ders 11: İşaretçi (Pointer) Kullanımı Yrd. Doç. Dr. Altan MESUT Trakya Üniversitesi Bilgisayar Mühendisliği.
Show Turtle = ST (Kalemi göster) Kullanımı ST Hiiden Turtle = HT (Kalemi Gizle) Kullanımı HT.
Örnek 1 Kullanıcının girdiği bir sayının karesini hesaplayan bir program yazınız.
TC Windows Editörü DevC++. KURULUM PROGRAMIN KURULACAĞI YER BURADA BELİRLENİYOR.
9. HAFTA 25 Nisan2016. Fonksiyon M-Dosyaları Fonksiyon dosyaları ilk satırda “function” kelimesi bulunan “.m” uzantısı bulunan dosyalardır. MATLAB içinde.
LITERARY TRANSLATION 2 Week 5. In-class translation workshop.
Searching Thy Lover, To Be One Looking at the sky.. Behind every cloud and over the wings of the birds.. I always dreamt of you. You were looking for.
BSM208 PROGRAMLAMA DİLLERİNİN PRENSİPLERİ Dil Çevrimi (Hafta4) 1.
Veri Tabanı Yönetimi Dersi 1. Laboratuvarı Arş. Gör. Pınar CİHAN.
IP PAKETİ. IP Paketi ● IP protokolü akış şeklinde çalışır. ● İletim katmanı mesajları alır 64K'lık datagramlara ayırır. ● Her datagram ağ üzerinden karşı.
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ı.
LD/LDI LD X0 LDI X0 X0 Y0 X0 Y1 Temel Komutlar
Programming 8086 – Kısım II Program Akışı ve Döngüler
İSTATİSTİK II Hipotez Testleri 1.
Veri Tabanı Yönetimi Dersi 7. Laboratuvarı
BÖTE 323: Internet Tabanlı Programlama Dr. Ercan TOP
8086 Programlama – Kısım IV Stack’ler, Makro’lar
SKILLFUL SKILLS BOOK DIJITAL KAYNAK.
Mekatronik Mühendisliği
8086 Programlama – Kısım III Prosedürler
© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
Mikroişlemciler Temel I/O Arayüzleri.
Mikroişlemciler Adresleme Modları.
BİLGİSAYAR PROGRAMLAMA Ders 11: İşaretçi (Pointer) Kullanımı
Mikroişlemciler Temel I/O Arayüzleri.
Delphi Ders5 Asli Ergün.
Bilgisayar Donanım ve Sistem Yazılımı
Mikroişlemci Sistemleri
Ac POWER ANALYSIS Part III..
Öğretim Görevlisi Emel ALTINTAŞ
MİKROİŞLEMCİLER VE MİKROBİLGİSAYARLAR
taşınabilir Akilli Tahta Kullanım kılavuzu
Show Turtle = ST (Kalemi göster) Kullanımı ST
PARAMETRİK HİPOTEZ TESTLERİ
Döngüler ve Shift Register
© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
LD/LDI LD X0 LDI X0 X0 Y0 X0 Y1 Temel Komutlar
MİKROİŞLEMCİLER VE MİKROBİLGİSAYARLAR
Tolga Ayav, K.Atilla Toker İzmir Yüksek Teknoloji Ensitütüsü
B+-Ağaçları.
DERS 13 PIC 16F84 ile DONANIM SAYICI KULLANIMI
Bilgisayar II 26 Nisan-7Mayıs Öğr. Gör. Feyza Tekinbaş.
FONKSİYONLAR İbrahim Onur Sığırcı.
Temel Kavramlar Bilgisayar Çalışma Mantığı
Stored Procedure Öğr.Gör.Metin Akbulut.
NİŞANTAŞI ÜNİVERSİTESİ
6. DÖNGÜ (TEKRARLAMA) DEYİMLERİ
Bilgisayar Bilimi Fonksiyon Yazma.
İSTATİSTİK II Hipotez Testleri 3.
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
(Dr. Öğr. Üyesi Deniz Dal)
Chapter 5 – Balancing of accounts
Problem Homework-06 In the control system shown above, R(s) is the reference input and C(s) is the output. Write the Matlab code to draw the Bode.
VERİTABANI YÖNETİM SİSTEMLERİ 6-SQL Server-3-DDL
SQL VIEW.
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. A maskable interrupt is a one that can be suppressed by software/code. That is to say, it may be ignored. Usually there are standard interrupt masking techniques for every processor, so that it may not be interrupted while performing some crucial task. Maskable interrupts can be ignored using these methods. Non-maskable interrupts are, likewise, those which can (and should) not be ignored. So events like critical hardware failure and system resets are attached to non-maskable interrupts to ensure that there's a "way out". These errors include non-recoverable internal system chipset errors, corruption in system memory such as parityand ECC errors, and data corruption detected o On some systems, an NMI can be triggered by the computer's user through hardware and software debugging interfaces and system reset buttons.n system and peripheral buses.

. hardware interrupt The primary sources of interrupts, however, are the PCs timer chip, keyboard, serial ports, parallel ports, disk drives, CMOS real-time clock, 4 mouse, sound cards, and other peripheral devices. These devices connect to an Intel 8259A programmable interrupt controller (PIC) that prioritizes the interrupts and interfaces with the 80x86 CPU. The 8259A chip adds considerable complexity to the software that processes interrupts. programmable interrupt controller: The 8259A programmable interrupt controller chip accepts interrupts from up to eight different devices, which shown in figure (2), If any one of the devices requests service, the 8259 will toggle an interrupt output line (connected to the CPU) and pass a programmable interrupt vector to the CPU.

NON-MASKABLE INTERRUPT (NMI) The processor provides a single non-maskable interrupt pin (NMI) which has higher priority than the maskable interrupt request pin (INTR). A typical use would be to activate a power failure routine. The NMI is edgetriggered on a LOW-to-HIGH transition.

INTO Interrupt 4 if Overflow flag is 1.  Algorithm: if OF = 1 then INT 4  MOV AL, -5 SUB AL, 127 ; AL = 7Ch (124) INTO ; process error. RET 

CLI Clear Interrupt enable flag. This disables hardware interrupts. Algorithm:  IF = 0  STI Set Interrupt enable flag. This enables hardware interrupts.  Algorithm:  IF = 1 

Algorithm: Pop from stack: RET Algorithm: Pop from stack: IP if immediate operand is present: SP = SP + operand Example: ORG 100h ; for COM file. CALL p1 ADD AX, 1 RET ; return to OS using INT 20h - exit to operating system. p1 PROC ; procedure declaration. MOV AX, 1234h RET ; return to caller. p1 ENDP

Interrupt Return. Algorithm: Pop from stack: IRET Interrupt Return.  Algorithm: Pop from stack: IP CS flags register

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

org 100h ; set location counter to 100h mov cx,5 sub cx,5 MOV AH, 0Eh ; alt fonksiyon seç. MOV AL, 'H' INT 10h ; Harfi yazdir! mov bx,0

Ö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

Öğrnek: mov al, 13h mov ah, 0 int 10h ; set graphics video mode. mov al, 1100b mov cx, 10 mov dx, 20 mov ah, 0ch int 10h ; set pixel. INT 10h / AH = 0Ch - change color for a single pixel. input: AL = pixel color CX = column. DX = row.

INT 21h / AH=7 - character input without echo to AL INT 21h / AH=7 - character input without echo to AL. if there is no character in the keyboard buffer, the function waits until any key is pressed. (store input in AL) example: mov ah, 7 int 21h

INT 21h / AH=9 - output of a string at DS:DX INT 21h / AH=9 - output of a string at DS:DX. String must be terminated by '$'.  example: org 100h mov dx, offset msg mov ah, 9 int 21h Ret msg db "hello world$"

INT 21h / AH= 39h - make directory INT 21h / AH= 39h - make directory. entry: DS:DX -> ASCIZ pathname; zero terminated string, for example:  org 100h mov dx, offset filepath mov ah, 39h int 21h ret filepath DB "C:\mydir", 0 ; path to be created. end the above code creates c:\emu8086\vdrive\C\mydir directory if run by the emulator.  Return: CF clear if successful AX destroyed. CF set on error AX = error code. Note: all directories in the given path must exist except the last one.  Try to do the same program for the same path and try to do it ith the name “my?dir”

INT 21h / AH= 3Ch - create or truncate file INT 21h / AH= 3Ch - create or truncate file.  entry:  CX = file attributes: mov cx, 0 ; normal - no attributes. mov cx, 1 ; read-only. mov cx, 2 ; hidden. mov cx, 4 ; system mov cx, 7 ; hidden, system and read-only! mov cx, 16 ; archive DS:DX -> ASCIZ filename.  returns:  CF clear if successful, AX = file handle.  CF set on error AX = error code. 

org 100h mov ah, 3ch mov cx, 0 mov dx, offset filename int 21h jc err mov handle, ax jmp k filename db "myfile.txt", 0 handle dw ? err: ; .... k: ret

ALU Examples MOV AL, 10110001b ; 4 biits = even pariity XOR AL, 0 ; Pariity fllag iis set (PE) MOV AX, 64C1H ; AX= 0110 01001100 0001 XOR AH, AL ______________________________________ MOV AL,, 55H ; AL=01010101b AND AL,, 1FH ; AL=15H=00010101b,cllear biit 7 OR AL,, C0H ; AL=D5H=11010101b,, set biits 1,, 3,, 5,, 7,, 8 XOR AL,, 0FH ; AL=DAH=11011010b,,iinvert biits 1,, 2,, 3,, 4 NOT AL ; AL=25H=00100101b,,togglles (iinvert) allll biits

org 100h ; set location counter to 100h MOV AL, 25 ; AL’ye 25 degerini ata. MOV BL, 10 ; BL’ye 10 degerini ata.; IF BL == 25 ????? CMP AL, BL ; compare (karsilastir) AL - BL. JE equal ; AL = BL (Z = 1) ise atla. MOV CX, 1 ; Eger buraya gelmis ise AL<>BL JMP stop ; CX’i set et, ve stop’a atla. equal: ; Eger buraya gelmis ise, MOV CX, 0 ; AL = BL’dir, CX’i temizle. stop: RET