Mengenal Interrupt Pada Pemrograman Assembly

Mengenal Interrupt Pada Pemrograman Assembly
Mengenal Interrupt Pada Pemrograman Assembly
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.

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 di-load ke memori oleh DOS pada saat DOS digunakan. Lokasi Interupt Vector Table-nya ada di alamat absolut 07Fh-3FFh.

Tabel BIOS Interrupt

No. Interrupt
Nama Interrupt
*00h
Divide 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 Channel 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
Communication (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

* Tanda 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.

    Tabel DOS Interrupt

    No. 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
    Didalam pemrograman dengan bahasa assembler kita akan banyak sekali menggunakan interupsi untuk menyelesaikan suatu tugas.

    Posting Komentar

    Lebih baru Lebih lama

    نموذج الاتصال