download

Matakuliah
Tahun
Versi
: T0483 / Bahasa Rakitan
: 2005
: 1.0
Pertemuan 10
Interupsi
1
Learning Outcomes
Pada akhir pertemuan ini, diharapkan mahasiswa
akan mampu :
• mendemonstrasikan program yang sudah
menggunakan interrupt bios dan interrupt
dos
2
Outline Materi
•
•
•
•
Interrupsi Hardware
Interrupsi Software
Interrupt BIOS
Interrupt DOS
3
<<ISI>>
INTERUPSI
•
•
Interupsi adalah penghentian secara sementara proses
(clock tick) dari CPU untuk menjalankan fungsi
interupsi sesuai dengan nomor interupsi-nya
Jenis Interupsi
– Hardware
– Software
– Internal
4
<<ISI>>
Hardware
–
N M I (Non Maskable Interupt): Int 02h
–
I R Q (Interupt Request): Int 00h - Int 15h
–
Reset
Software
–
BIOS (Basic Input Output System)
–
Interupsi yang sudah disediakan (ada sebelum dan sesudah
operating system masuk): Int 00h - Int 1Fh
–
DOS (Disk Operating System)
–
Interupsi yang hanya ada bila operating system sudah di load
ke memori): Int 20h - Int 0FFh
Internal
–
Devide Error (Int 00h)
–
Overflow (Int 04h)
–
Single step (Int 01h)
–
Breakpoint (Int 03h)
5
<<ISI>>
Tabel Interupsi
–
–
•
Terletak pada memori 0000:0000h sampai
0000:03FFh
Setiap nomor interupsi diwakili oleh 4 byte pada
memori
INT
–
–
Format: int <opr>
Operand yang mengikuti instruksi INT merupakan
suatu nilai konstan 8 bit (00h - 0FFh)
6
<<ISI>>
Interrupt BIOS
• INT 10h (Screen)
• Service (ditempatkan pada register AH)
• Jika Nilai AH :
–
–
–
–
–
–
–
•
00 : Menentukan mode tampilan screen
01 : Menentukan ukuran kursor
03 : Menentukan posisi kursor
05 : Menentuklan halaman (page) aktif
06 : Membuat layar bergulir ke atas
07 : Membuat layar bergulir ke bawah
0E : Mencetak sebuah karakter ke screen
INT 16h (Keyboard)
– 00 : Membaca tekanan keyboard
– 01 : Membaca status tekanan keyboard
– 02 : Membaca status keyboard alt-control-shift
•
INT 17h (Printer)
– 00 : Mencetak sebuah karakter ke printer
– 01 : Reset printer
– 02 : Mendapatkan status printer
7
<<ISI>>
• INT 10h
– Menentukan mode
layar
– Fungsi / Service :
AH = 00h
– Input : AL = mode
number (lihat
tabel)
8
<<ISI>>
INT 10H (Menentukan ukuran kursor)
– Fungsi / Service : AH = 01h
– Input :
– CH = Awal garis (0-7)
– CL = Akhir garis (0-7)
INT 10H (Menentukan posisi kursor (x,y))
– Fungsi / Service : AH = 02h
– Input :
–
–
–
BH = Nomor halaman
DH = Nomor baris
DL = Nomor kolom
9
<<ISI>>
INT 10H (Mendapatkan informasi kursor)
–
–
–
Fungsi / Service : AH = 03h
Input : BH = Nomor halaman
Output :
•
•
•
•
CH = Awal garis
CL = Akhir garis
DH = Nomor baris
DL = Nomor kolom
INT 10H (Menentukan halaman aktif)
–
–
–
Default Halaman / Page = 0
Fungsi / Service : AH = 05h
Input : AL = Nomor halaman (lihat tabel)
10
<<ISI>>
Membuat tampilan layar bergulir ke
• Fungsi :
•
•
•
AH = 06h (bergulir ke atas)
AH = 07h (bergulir ke bawah)
Input :
•
•
•
•
•
•
AL = Jumlah baris (0 : semua)
BH = Warna pengisi
CH = Baris atas (y1)
CL = Kolom kiri (x1)
DH = Baris bawah (y2)
DL = Kolom kanan (x2)
11
<<ISI>>
INT 10H (Menampilkan sebuah karakter ke layar)
• Fungsi : AH = 09h
Input :
–
–
–
–
AL = Karakter ASCII (0 - 255)
BL = Warna (LB/LD)
BH = Nomor halaman
CX = Berapa kali ditampilkan
– Ket :
– Pada saat karakter ditampilkan, kursor tidak akan
berpindah tempat
12
<<ISI>>
INT 10H (Menampilkan sebuah karakter ke layar)
• Fungsi :
–
•
Input :
–
–
•
AH = 0Eh
AL = Karakter ASCII (0 -255)
BH = Nomor halaman
Ket :
–
Pada saat karakter ditampilkan, kursor akan
berpindah ke sebelah kanan karakter yang
ditampilkan
13
<<ISI>>
INT 16h
•
Membaca tekanan tombol
–
–
Fungsi / Service : AH = 00h
Output :
»
»
•
AH = Scan code
AL = ASCII code (0 = tombol khusus)
Ket :
–
•
Fungsi 00h akan menyebabkan komputer berhenti sementara
untuk meminta penekanan tombol dari keyboard
Memeriksa apakah ada penekanan tombol
–
–
Fungsi / Service : AH = 01h
Output :
»
ZF = 0 (ada tombol ditekan), 1 (tidak ada)
14
<<ISI>>
•
INT 16H (Status tombol Shift, Alt, Ctrl, Caps
Lock,Num Lock, Scroll Lock, Insert)
•
•
Fungsi : AH = 02h
Output : AL = Status (lihat tabel)
15
<<ISI>>
• Mempercepat laju pengetikan
– Fungsi :
• AH = 03h
– Input :
• AL = 05h
• BH = Nilai delay/penundaan (0 - 4)
• BL = Tingkat typematic (0 - 1Fh)
– Ket :
• Tingkat typematic default adalah 10 char/detik
• Nilai penundaan default adalah 500ms
16
<<ISI>>
• INT 17h
– Mencetak karakter ke
printer
– Fungsi :
• AH = 00h
– Input :
• AL = Karakter ASCII (01
- 255)
• DX = Nomor paralel
(LPT1 = 0, LPT2 = 1,
dst)
– Output :
• AH = Status (Lihat
tabel)
17
<<ISI>>
•
Reset printer
– Fungsi :
•
AH = 01h
– Input :
•
•
•
DX = Nomor
paralel
Output :
AH = Status
(lihat tabel)
•
Mendapatkan status
printer
Fungsi :
AH = 02h
Input :
DX = Nomor paralel
Output :
AH = Status (lihat
tabel
18
<< CLOSING>>
• Int BIOS sudah ada sebelum sistem
operasi di load ke memori
• Int DOS akan baru ada setelah sistem
operasi di load ke memori
19