Interrupt
Interrupt
Interupsi adalah suatu permintaan khusus kepada mikroprosesor untuk melakukan sesuatu. Bila terjadi interupsi, maka komputer akan menghentikan dahulu apa yang sedang dikerjakannya dan melakukan apa yang diminta oleh yang menginterupsi.
Pada IBM PC dan kompatibelnya disediakan 256 buah interupsi yang diberi nomor 0 (0000000 biner) sampai 255 (1111111 biner) dimana jumlah digit binari adalah 8 (1 byte = 8 binary digit atau bit). Nomor interupsi 0 sampai 1Fh disediakan oleh ROM BIOS, yaitu suatu IC di dalam komputer yang mengatur operasi dasar komputer.
Jadi bila terjadi interupsi dengan nomor 0 sampai dengan 1F(heksadesimal), maka secara default komputer akan beralih menuju ROM BIOS dan melaksanakan program yang terdapat di sana.
Program yang melayani suatu interupsi dinamakan Interrupt Handler.
Setiap interrupt akan mengeksekusi interrupt handler-nya masing-masing berdasarkan nomornya.
Sedangkan alamat dari masing-masing interrupt handler tercatat di memori dalam bentuk array yang besar elemennya masing-masing 4 byte.
Ke 4 byte ini dibagi lagi menjadi 2, yaitu 2 byte pertama berisi kode offset sedangkan 2 byte berikutnya berisi kode segmen dari alamat interrupt handler yang bersangkutan.
Jadi besarnya array itu adalah 256 elemen (jumlah elemen dari 0 sampai 255) dengan ukuran elemen masing-masing 4 byte.
Total keseluruhan memori yang dipakai dari 256 elemen tersebut dengan masing - masing elemen memiliki 4 byte adalah sebesar 1024 byte (256 x 4 = 1024) atau 1 KB ini disebut Interrupt Vektor Table (Tabel Vektor Interupsi).
Nilai-nilai yang terkandung pada Interrupt Vector Table ini tidak akan sama di 1 komputer dengan yang lainnya.
Interrupt yang berjumlah 256 buah ini dibagi menjadi 2 macam, yaitu :
- Interrupt 00h - 1Fh (0 - 31)
Adalah interrupt BIOS dan standar di semua komputer baik yang mengunakan sistem operasi DOS atau bukan.
Lokasi Interrupt Vector Table-nya ada di alamat absolut 0000h-007Fh.
- Interrupt 20h - FFh (32 - 255)
Adalah interrupt DOS. Interrupt ini hanya ada pada komputer yang menggunakan sistem operasi DOS dan Interrupt Handler-nya di-load ke memori oleh DOS pada saat DOS digunakan.
Lokasi interrupt Vector Table-nya ada di alamat absolut 07Fh-3FFh
-----------------------------------
Nomor | Nama
Interrupt | Interrupt
-----------------------------------
*00h | Devide By Zero
*01h | Single Step
*02h | Non MaskableInt (NMI)
*03h | Break point
04h | Arithmatic Overflow
05h | Print Screen
06h | Reserved
07h | Reserved
08h | Clock Tick (Timer)
09h | Keyboard
0Ah | I/O Chanel Action
0Bh | COM 1 (serial 1)
0Ch | COM 2 (serial 2)
0Dh | Fixed Disk
0Eh | Diskette
0Fh | LPT 1 (Parallel 1)
10h | Video Service
11h | Equipment Check
12h | Memory Size
13h | Disk Service
14h | Comunication *RS-232)
15h | Cassette Service
16h | Keyboard Service
17h | Printer Service
18h | ROM Basic
19h | Bootstrap Loader
1Ah | BIOS time & date
1Bh | Control Break
1Ch | Timer Tick
1Dh | Video Initialization
1Eh | Disk Parameters
1Fh | Graphics Char
-----------------------------------
BIOS Interrupt
Ket * -> Interrupt ini telah dipastikan kegunaannya oleh sistem untuk keperluan yang khusus, tidak boleh diubah oleh pemrogram seperti lainnya.
DEVIDE BY ZERO
Jika terjadi pembagian dengan nol, maka proses akan segera dihentikan.
SINGLE STEP
Untuk melaksanakan/mengeksekusi intruksi satu persatu.
NMI
Pelayanan terhadap NMI (Non Maskable Interrupt), yaitu interupsi yang tak dapat dicegah.
BREAK POINT
Jika suatu program menyebabkan overflow flag menjadi 1, Interrupt ini akan melayani pencegahannya dan memberi tanda error.
-----------------------------------------
Nomor | Nama
Interrupt | Interrupt
-----------------------------------------
20h | Terminate Program
21h | DOS Function Services
22h | Terminate Code
23h | Ctrl-Break Code
24h | Critical Error Handler
25h | Absolute Disk Read
26h | Absolute Disk Write
27h | Terminate Bus Stay Resident
-----------------------------------------
DOS Interrupt