Jumat, 23 November 2007

Interrupt

Interupsi atau bisa disebut Interrupt memiliki pengertian suatu permintaan khusus kepada mikroprosessor untuk melakukan sesuatu. Bila terjadi interupsi, mikroprosesor akan menghentikan dahulu apa yang sedang dikerjakannya dan mengerjakan permintaan khusus tersebut.

Jenis-jenis interrupt:
a.Software, interrupt jenis ini juga disebut System call. Misalnya, suatu program ingin mencetak hasil dengan printer
b.Hardware, terjadi karena adanya aksi pada perangkat keras, seperti penekanan tombol keyboard atau menggerakkan mouse. Interrupt ini terbagi lagi menjadi dua,yaitu: Maskable Interrupt(terjadi karena aksi luar) dan Non Maskable Interrupt(terjadi karena memori atau kesalahan parity pada program)

Penyebab terjadinya Interrupt:
a.Program, terjadi akibat eksekusi suatu instruksi
b.Timmer, disebabkan oleh timmer prosessor
c.I/O, disebabkan oleh I/O controller baik sebagai tanda bahwa operasi telah selesai maupun memberi tanda eror.
d.Kegagalan hardware, disebabkan oleh kesalahan hardware seperti power failure dan memori parity eror.

Ada dua aksi yang diberikan saat terjadi interrupt:
a.Syncronous I/O. I/O dijalankan, I/O selesai digunakan, kontrol menginformasikan kembali ke user proses. Untuk menunggu selesai digunakannya I/O, digunakan perintah wait.
b.Asyncronous I/O. Kembali ke user program tanpa harus menunggu I/O.


Vektor Interupsi
Vector interupsi merupakan 4 byte data yang disimpan pada 1024 byte pertama memori (000000h-0003FFFh) jika mikroprosesor dijalankan dalam real mode. Setiap vector interupsi ini berisi alamat procedure layanan interupsi, yaitu suatu procedure khusus yang dipanggil oleh vector interupsi. Dua byte pertama dari vector tersebut berisi alamat IP dan 2 byte terakhir berisi alamat CS dari procedure layanan interupsi tersebut.

ADa 256 vektor interupsi yang dimiliki mikroprosesor intel. Intel menyediakan 32 vektor interupsi untuk 8086-80486 dan kebutuhan-kebutuhan pengembangan di masa mendatang, sedangkan sisanya disediakan untuk dimanipulasi untuk digunakan untuk keperluan pengguna. Berikut ini adalah table vector interupsi pada mikroprosesor keluarga intel:


Keterangan:
a.* = dicadangkan untuk pengembangan di masa mendatang
b.Vektor no. 1-7,9,16, dan 17 dapat digunakan untuk pemrograman real mode dan protected mode, sedangkan yang lain hanya untuk protected mode.
c.INT 100 berarti memanggil procedure layanan nomor 100 yang alamatnya pada 190h-193h.


Instruksi Interrupt pada PC (Personal Computer)
Instruksi interrupt pada PC(personal computer) berbeda dengan interupsi pada table interupai diatas, sebab PC pada awalnya dikembangkan berbasis (compatible dengan) system 8086-8088. Jadi interupsi yang sama di setiap PC adalah interupsi no 0-4. Berikut ini adalah table interupsi yang terdapat pada PC:



Ada interupsi yang hanya trdiri dari 1 fungi layanan,misalnya INT20h (untuk menghentikan program), tetapi ada pula yang lebih, misalnya INT 21h, INT10h, dll. Untuk memanggil nomor layanan tertentu, nomor layanan tersebut harus dimasukkan dulu ke register AH sebelum INT bersangkutan dieksekusi.

1 komentar:

Unknown mengatakan...

kalo tebel vektor interupsi, apa sama dengan yang di atas itu?