Senin, 29 Maret 2010

Bahasa rakitan, 23 maret 2010
  • 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
(Pembagian dengan Nol)

10H

Video Service

*01H

Single Step (Langkah Tunggal)

11H

Equipment Check
(Pemeriksaan Perlengkapan)

*02H

Non Maskable interrupt
(NMI) (Interrupt yang Tidak Dapat Dicegah)

12H

Memory Size (Ukuran Memory)

*03H

Break Poin

13H

Disk Servis

04H

Arithmetic Overflow
(Overflow pada operasi Aritmetik)

14H

Communication Rs-232
(Komunikasi dengan 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
(Petunjuk Waktu)

18H

ROM Basic (Dasar dari ROM)

09H

Keyboard

19H

Bootstrap Loader (Loader pada Saat Pertmakali Booting)

0AH

I/O Channel Action
(Aktivitas Channel Input/Output)

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
Tetap/Harddisk)

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
(Hentikan Program)

24H

Critical Error Handler
(Penanganan Error Kritis)

21H

DOS Function Services
(Servis-servis Fungsi dalam DOS)

25H

Absolute Disk Read (Membaca isi disk Secara Mutlak)

22H

Terminate Code
(Hentikan Kode)

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

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

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

1 komentar:

BTemplates.com

Diberdayakan oleh Blogger.

Pages

Profil

Foto saya
Jakarta, jakarta selatan, Indonesia
Remaja. Tinggal di Jakarta. Sedang berusaha menemukan jawaban dari "Siapa saya?". Mencintai binar mata kanak-kanak, langit senja, aroma tanah basah, gelembung sabun, cokelat panas, tertawa keras-keras, dan berpelukan. Tergila-gila pada blog, humor, dan segala jenis buku. Teman yang menyenangkan dan menyebalkan, tergantung suasana hati. Baginya, menulis adalah terapi sekaligus sarana pencarian jati diri. Jadi, jangan tertipu oleh tulisan. Sapa dia jika bertemu di jalan, karena dia akan menyapa balik. Tapi jangan coba-coba menginjak kakinya di dalam angkot, atau menghembuskan asap rokok tepat di mukanya.

Followers

Total Tayangan Halaman

Popular Posts