Interupsi adalah suatu
permintaan khusus kepada mikroposesor 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 sampai 255.
Nomor interupsi 0 sampai 1Fh disediakan oleh ROM BIOS, yaitu suatu IC didalam
komputer yang mengatur operasi dasar komputer. Jadi bila terjadi interupsi
dengan nomor 0-1Fh, maka secara default komputer akan beralih menuju ROM BIOS
dan melaksanakan program yang terdapat disana. Program yang melayani suatu
interupsi dinamakan Interrupt Handler.
3.2.
VEKTOR INTERUPSI
Setiap interrupt akan
mengeksekusi interrupt handlernya masing-masing berdasarkan nomornya. Sedangkan
alamat dari masing- masing interupt handler
tercatat di
memori dalam bentuk array yang besar elemennya masing-masing 4 byte. Keempat
byte ini dibagi lagi yaitu 2 byte pertama berisi kode offset sedangkan 2 byte berikutnya berisi kode
segmen dari alamat interupt handler yang bersangkutan. Jadi besarnya array itu
adalah 256 elemen dengan ukuran elemen masing-masing 4 byte. Total keseluruhan
memori yang dipakai adalah sebesar 1024 byte (256 x 4 = 1024) atau 1 KB dan
disimpan dalam lokasi memori absolut 0000h sampai 3FFh. Array sebesar 1 KB ini
disebut Interupt Vector Table (Table Vektor Interupsi). Nilai-nilai yang
terkandung pada Interupt Vector Table ini tidak akan sama di satu komputer dengan
yang lainnya.
Interupt yang berjumlah
256 buah ini dibagi lagi ke dalam 2 macam yaitu:
- Interupt 00h - 1Fh (0 -
31) adalah interrupt BIOS dan standar di semua komputer baik yang menggunakan
sistem operasi DOS atau bukan. Lokasi Interupt Vector Table-nya ada di alamat
absolut 0000h-007Fh.
- Interupt 20h - FFh (32 -
255) adalah interrupt DOS. Interrupt ini hanya ada pada komputer yang
menggunakan sistem operasi DOS dan Interupt Handler-nya diload ke memori oleh
DOS pada saat DOS digunakan. Lokasi Interupt Vector Tablenya ada di alamat
absolut 07Fh-3FFh.
Nomor
Interrupt
|
Nama
Interrupt
|
Nomor
Interrupt
|
Nama
Interrupt
|
*00h
|
Divide By Zero
|
10h
|
Video Service
|
*01h
|
Single Step
|
11h
|
Equipment Check
|
*02h
|
Non
MaskableInt(NMI)
|
12h
|
Memory Size
|
*03h
|
Break point
|
13h
|
Disk Service
|
04h
|
Arithmatic
Overflow
|
14h
|
Communication
(RS-232)
|
05h
|
Print Screen
|
15h
|
Cassette Service
|
06h
|
Reserved
|
16h
|
Keyboard Service
|
07h
|
Reserved
|
17h
|
Printer Service
|
08h
|
Clock Tick(Timer)
|
18h
|
ROM Basic
|
09h
|
Keyboard
|
19h
|
Bootstrap Loader
|
0Ah
|
I/O Channel Action
|
1Ah
|
BIOS time &
date
|
0Bh
|
COM 1 (serial 1)
|
1Bh
|
Control Break
|
0Ch
|
COM 2 (serial 2)
|
1Ch
|
Timer Tick
|
0Dh
|
Fixed Disk
|
1Dh
|
Video
Initialization
|
0Eh
|
Diskette
|
1Eh
|
Disk Parameters
|
0Fh
|
LPT 1 (Parallel 1)
|
1Fh
|
Graphics Char
|
Gambar 3.1. BIOS Interrupt
Interrupt ini
telah dipastikan kegunaannya oleh sistem untuk keperluan yang khusus , tidak
boleh dirubah oleh pemrogram seperti yang 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 maka interrupt
ini akan melayani pencegahannya dan memberi tanda error.
Nomor
Interrupt
|
Nama
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 But Stay Resident
|
Gambar 3.2. DOS Interrupt
Didalam
pemrograman dengan bahasa assembler kita akan banyak sekali menggunakan
interupsi untuk menyelesaikan suatu tugas.
Sign up here with your email
ConversionConversion EmoticonEmoticon