- Interrupt adalah suatu permintaan khusus untuk melakukan suatu dan harus segera dipenuhi oleh mikroprosesor, apapun yang sedang dikerjakannya harus dihentikan dahulu untuk memenuhi interrupt ini.
- Pada IBM PC dan kompetibelnya disediakan 256 buah interupsi yang diberi nomor 0 sampai 255.
- Interrupt yang berjumlah 256 ini dibagi kedalam 2 macam yaitu:
- Interupt 00H – 1FH (0 -31) adalah interrupt BIOS, interrupt ini standart disemua computer apapun system operasinya, baik dos atau bukan. Lokasi Interrupt Vektor Tablenya pada alamat absolute/mutalak 000H – 007FH
- Interupt 20H – FFH (32 -255) adalah interrupt dos. Interrupt ini hanya pada computer yang menggunakan system operasi dos dan interrupt handlernya di load ke memori oleh DOS pada saat DOS digunakan. Lokasi Interrupt Vector Tablenya ada di alamat absolute 07FH – 3FFH
- Setiap Interrupt akan mengeksekusi interrupt handlernya(program yang melayani suatu interupsi) masing-masing berdasarnkan nomornya.
- Penulisan interrupt sebagai berikut :
INT ‘NomorInterrupt’
- Tabel BIOS INTERRUPT
Nomor | Nama | Nomor | Nama |
*00H | Divide By Zero | 10H | Video Service |
*01H | Single Step (Langkah Tunggal) | 11H | Equipment Check |
*02H | Non Maskable interrupt | 12H | Memory Size (Ukuran Memory) |
*03H | Break Poin | 13H | Disk Servis |
04H | Arithmetic Overflow | 14H | Communication Rs-232 |
05H | Print Screen (cetak Layar) | 15H | Casette Service |
06H | Reserved (Cadangan) | 16H | Keyboard Service |
07H | Reserved (Cadangan) | 17H | Printeer Service |
08H | Clock Tick/Timer | 18H | ROM Basic (Dasar dari ROM) |
09H | Keyboard | 19H | Bootstrap Loader (Loader pada Saat Pertmakali Booting) |
0AH | I/O Channel Action | 1AH | BIOS Time & Date (Waktu dan Tanggal System pada BIOS) |
0BH | COM 1 (Serial Port 1) | 1BH | Control Break |
0CH | COM 2 (Serial Port 2) | 1CH | Timer Tick (Detikan Waktu) |
ODH | Fixed Disk (Disk | 1DH | Video Initialization |
0EH | Diskette (Disket/Floppy Disk) | 1EH | Disk Parameter |
0FH | LPT 1 (Parallel Port 1) | 1FH | Graphics Char (Karakter Grafik) |
Ket:
*Interrupt tersebut telah dipastikan kegunaannya oleh system untuk keperluan khusus, tidak boleh dirubah oleh pemrogram
- Devide By Zero => Jika terjadi pembagian dengan nol maka proses akan segera dihentikan
- Singgle Step => untuk melakasanakan/mengeksekusi instruksi satu persatu
- NMI => Pelayanan terhadap NMI(Non Maskable Interrupt) yaitu interupsi yang tidak 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
Nomor | Nama | Nomor | Nama |
20H | Terminate Program | 24H | Critical Error Handler |
21H | DOS Function Services | 25H | Absolute Disk Read (Membaca isi disk Secara Mutlak) |
22H | Terminate Code | 26H | Absolute Disk Write (Menulis ke dalam disk secara mutlak) |
23H | Control-Break Code(Keluar dari Kode) | 27H | Terminate But Stay Resident(Hentikan Tapi Tetap Tinggal) |
- Beberapa Interrupt baik bios maupun dos memiliki nomor service sbb:
- Interrupt Bios
- INT 10 => Layanan Video Service/layanan monitor
- Interrupt Bios
Memiliki nomor service sbb:
0 => Atur mode video
1 => Mengubah ukuran kursor
2 => Ubah posisi kursor
3 => Mencari posisi kursor
5 => Memilih halama video
6 => Menggulung keatas
7 => Menggulung ke bawah
8 => Membaca karakter dan atributnya
9 => Menulis karakter dan atributnya
Ah => Menulis karakter
Fh => Mencari mode video
-
-
- INT 13 => Layanan disket
-
Memiliki nomor service 0 yang dihunakan untuk mereset disk, 0 dimasukkan pada register AH
-
- Interrupt Dos
- INT 21 => Dos Function Service
- Interrupt Dos
Memiliki beberapa service yang diletakkan pada register AH antara lain:
1 => Input papan ketik
2 => Tampilkan karakter
3 => Input port serial
4 => Output port serial
5 => Output pencetak
6 => Input atau output langsung
7 => input tanpa tampilan
8 => input papan-ketik tanpa tab
9 => Tampilkan string
A => Baca buffer papan ketik
B => Status input
25 => Ubah vector interrupt
30 => Cari nomor versi DOS
31 => program tetap tinggal dimemori
35 => cari vector interrupt
3C => Buat berkas
3D =>Buka berkas
3E => Tutup berkas
3F => Baca berkas atau piranti
40 => Tulis berkas atau piranti
41 => Hapus berkas
43 => Atribut berkas
4A => Ubah memory yang disisihkan
4B => Muat dan jalankan Program
4C =>Hentikan program
4D => tentukan sandi kesalahan
56 => Ganti nama berkas
- Contoh Program penggunaan interrrupt
.MODEL SMALL
.CODE
ORG 100H
Start: MOV CL,26 ;isi CL dengan 26(A-Z = 26 karakter)
MOV AH,2H ;service untuk mencetak karakter
MOV DL,'A' ;isi DL dengan karakter pertama uang akan di cetak
Ulang: INT 21H ;Cetak karakternya
INC DL ;DL=DL+1
LOOP Ulang ;Lompat ke label Ulang sebanyak CL
INT 20H ;Interrupt Hentikan Program
END Start
http://www.winsystems.com
makasih yah kak untuk info infonya
BalasHapussahabat alfamart