NEXT
This presentation is the property of its rightful owner.
Sponsored Links
1 / 17

Pendahuluan Interupsi PowerPoint PPT Presentation


  • 112 Views
  • Uploaded on
  • Presentation posted in: General

NEXT. Pendahuluan Interupsi. PENDAHULUAN INTERUPSI

Download Presentation

Pendahuluan Interupsi

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Pendahuluan interupsi

NEXT

Pendahuluan Interupsi

PENDAHULUAN INTERUPSI

Interupsi dapat berupa CALL yang dibangkitkan perangkat keras ( berasal dari sinyal perangkat keras luar ) atau yang dibangkitakan oleh perangkat lunak ( berasal dari eksekusi intruksi internal atau peristiwa internal yang lain ). Di sini, interupsi internal disebut eksepsi (eksepsion). Kedua tipe ini menginterupsi program dengan memanggil prosedur pelayanan prosedur pelayanan interupsi atau interrupt handler.

Bagian ini menjelaskan interupsi perangkat lunak, terutama tipe interuksi CALL.

Bagian ini menjelaskan tipe interupsi perangkat lunak (INT,INTO,dan INT 3), menyediakan peta vektor interupsi, dan menjelaskan manfaat interuksi return khusus untuk interupsi (IRET).


Pendahuluan interupsi

NEXT

Vektor Interupsi

Vektor interupsi adalah angka empat byte yang disimpan pada 1024 byte pertama memori (000000H-0003FFH) ketika mikroprosesor dioperasikan dalam mode rill.

riil. Setiap vector berisi nilai IP dan CS yang membentuk alamat dalam prosedur pelayanan interupsi. Dua byte pertama berisi IP, dan dua byte terkhir berisi CS.

Intel mencadangkan 32 vektor interupsi pertama untuk produk mikroprosesor saat ini dan yang akan datang. Vektor interupsi sisnya (32-255) disesuiakan untuk pengguna. Beberapa dari vektor cadangan adalah untuk kesalahan yang terjadi selama eksekusi perangkat lunak, seperti interupsi kesalahan pembagian. Beberapa vektor dicadangkan untuk komprosesor. Vektor lain yang masih ada digunakan untuk kondisi normal dalam sistem. Pada computer personal, vector 1-6,7,9,16,dan17 berfungsi pada mode riil dan mode terproteksi; sedangkan sisa vector yang hanya pada mode terproteksi.


Pendahuluan interupsi

NEXT

TABEL 6-4 Vektor interupsi.

NomorAlamatMikroprosesorFungsi

0OH - 3HSemuaKesalahan pembagian

14H - 7HSemuaAingle-step

28H - BHSemuaPin NMI

3CH - FHSemuaBreakpoint

410H - 13HSemuaInterupsi pada overflow

514H - 17H80186 – Pentium 4Instruksi bound

618H - 1BH80186 – Pentium 4Invalid opcode

71CH - 1FH80186 – Pentium 4Emulasi koprosesor

820H - 23H80186 – Pentium 4Double fault

924 H - 27H80386Coprocessor segment overrun

A28H - 2BH80386 – pentium 4Invalid task state segment

B2CH - 2FH80386 – pentium 4Segment tidak ada

C30H - 33H80386 – pentium 4Stack fault

D34H - 37H80386 – pentium 4General protection fault (GPF)

E38H - 3BH80386 – pentium 4Page fault

F3CH - 3FH-Cadangan

1040H - 43H80286 – pentium 4Kesalahan floating point

1144H - 47H80486SXInterupsi cek alignment

1248H - 4FHPentium/Pentium 4Eksepsi cek mesin

13-1F50H - 7FH-Cadangan

20-FF80H - 3FFH-Interupsi pengguna


Pendahuluan interupsi

NEXT

Instruksi Interupsi

Mikroprosesor mempunyai tiga interuksi interupsi berbeda yangf disediakan untuk programer: INT,INTO,dan 3.pada mode riil, setiap interupsi ini mengambilkan vektor dari tabel vektor, pada mode terproteksi, setiap instruksi ini mengambilkan deskriptor interupsi dari tabel deskriptor interupsi. Deskriptor menentukan alamat prosedur pelayanan interupsi. Pemanggilan interupsi mirip dengan instruksi far CALL karena menempatkan alamat return (IP/EIP dan CS) ke dalam stack.


Pendahuluan interupsi

NEXT

Pengaturan Interupsi

Meskipun tidak menjelaskan perangkat keras, pada bagian ini akan disinggung dua instruksi yang menggatur pin INTR. Intruksi set interrupt flag (STI) menempatkan 1 ke dalam bit flag I, yang menggaktifkan pin INTR. Instruksi clear interrupt flag (CLI) menempatkan 0 ke dalam bit flag I, yang menonaktifkan flag INTR. Instruksi STI menggaktifkan INTR danCLI menonaktifkan INTR. Pada perangkat lunak prosedur pelayanan interupsi,interupsi perangkat keras diaktifkan sebagai sebuah langkah pertama. Hal ini dilakukan dengan instruksi STI. Alasan mengapa interupsi diaktifkan di awal prosedur pelayanan interupsi adalah pemrosesan semua peanti I/O dalam komputer personal menggunakan interupsi. Jika interupsi dinonaktifkan terlalu lama maka sistem akan terganggu.


Pendahuluan interupsi

NEXT

INTERUPSI DALAM KOMPUTER PERSONAL

Interupsi yang terdapat dalam komputer personal berbeda dengan yang telah dijelaskan pada Taabel 6-4. alasan perbedaan tersebut terletak pada asal komputer personal, yaitu sistem berbasis 8086/8088.artinya komputer ini hanya berisi interupsi 0-4 sesuai ketentuan Intel. Rancangan ini tetap dipertahankan sehingga sistem yang lebih baru menjadi kompatibel denagn komputer personal sebelumnya.


Pendahuluan interupsi

NEXT

Pengaturan Bit Flag Carry

Flag carry (c)melambangkan carry atau borrow dalam penjumlahan dan penggurangan multiple-word/double word. Flag ini juga menandakan kesalahan (error) dalam prosedur. Ada tiga intruksi yang mengatur isi flag carry: STC (set carry), CLC(clear carry),dan CMC (complement carry).

Karena flag carry jarang digunakan, kecuali pada penjumlahan dan penggurangan multiple-word, maka flag tersebut digunakan untuk keperluan lain. Manfaat utama flag carry adalah menandai kesalahan ketika kembali dari suatu prosedur.misalkan sebuah prosedur membaca data dari file memori disk. Operasi ini dapat dilakukan dengan sukses, atau malah terjadi kesalahan seperti file-not-found. Ketika kembali dari prosedur ini, jika C=1 maka terjadi kesalahan; jika C=0 maka tidak terjadi kersalahan. Kebanyakan prosedur DOS dan BIOS menggunakan flag carry untuk menandai kondisi kesalahan.


Pendahuluan interupsi

NEXT

WAIT

Instruksi wait memonitor pin BUSY pada 8086 dan 80386 dan pin TEST pada 8086/8088. nama pin ini pada mikroprosesor 8086 diubah dari TEST menjadi BUSY. Jika instruksi WAIT dieksekusi ketika pin BUSY = 1 maka tidak terjadi apa-apa dan instruksi berikutnya dijalankan. Jika pin BUSY = 0 ketika instruksi WAIT dieksekusi maka mikroprosesor akan menunggu pin BUSY kembali ke logika 1. Pin ini menandakan keadaan sibuk (busy state) ketika berada pada level logika 0.

Pin BUSY/TEST mikroprosesor biasanya dihubungkan dengan pin BUSY koprosesor numerik 8087 sampai 80387. koneksi ini membuat mikroprosesor menunggu sampai koprosesor menyelesaikan tugasnya. Karena koprosesor berada di dalam 80486 sampai Pentium 4, pin BUSY tidak ditemukan pada mikroprosesor jenis ini.


Pendahuluan interupsi

NEXT

HLT

Instruksi halt (HLT) menghentikan eksekusi perangkat lunak. Ada 3 cara untuk keluar dari halt : melalui sebuah instruksi dengan resep perangkat keras, atau dengan operasi DMA. Instruksi ini biasanya muncul pada program untuk menunggu interupsi. Seringkali dibuat sinkronisasi antara interupsi perangkat keras dengan sistem perangkat lunak.


Pendahuluan interupsi

NEXT

NOP

Ketika mikroprosesor menjumpai instruksi no operation (NOP) maka hanya dibutuhkan sedikit waktu untuk melakukan eksekusi. Pada masa awal, sebelum perangkat pengembangan perangkat lunak ada, sebuah NOP yang menjalankan no operation sering dipakai untuk memberikan ruang dalam perangkat lunak bagi instruksi bahasa mesin mendatang. Jika anda mengembangkan bahasa mesin, yang sangat jarang sekali, direkomendasikan untuk menempatkan 10 atau juga NOP pada program anda dalam interval 50-byte. Hal ini akan berguna ketika anda membutuhkan penambahan instruksi pada tempat tersebut di masa yang akan datang. NOP juga digunakan untuk aplikasi waktu tunda (time delay), yaitu untuk menghabiskan waktu. Perlu disadari bahwa NOP yang digunakan untuk pewaktuan tidak terlalu akurat karena cache dan pipeline pada mikroprosesor modern.


Pendahuluan interupsi

NEXT

Prefiks LOCK

Prefiks LOCK melampiri sebuah instruksi dan menyebabkan pin LOCK berlogika 0. Pin LOCK sering digunakan untuk menonaktifkan bus master eksternal atau komponen sistem. Prefiks LOCK menyebabkan pin LOCK diaktifkan selama selang waktu instruksi kuncian (locked). Jika terdapat lebih dari sebuah instruksi yang dikunci, pin LOCK akan tetap berada.

Pada logika 0 selama selang waktu urutan intruksi LOCK:MOV AL,[SI] merupakan contoh instruksi kucian.

ESC

Instruksi escape (ESC) menyalurkan informasi ke koprosesor numerik 8087-pentium 4. ketika instruksi ESC dieksekusi, mikroprosesor akan menyediakan alamat memori jika dibutuhkan, tetapi juga tetap melaksanakan NOP. Enam bitdalam instruksi ESC menyediakan opcode ke koprosesor dan mulai mengeksekusi instruksi.

Opcode ESC tidak pernah terlihat dalam program sebagai ESC dan dianggap sebagai opcode yang usang. Sebagai penggantinya terdapat sekumpulan instruksi kopresesor (FLD,FST,FMUL dan lai-lain) yang di-assembly sebagai instruksi ESC untuk kopresesor. Penjelasan lebih lanjut ada pada Bab 13, yang menjelaskan koprosesor numerik 8087-pentium 4.


Pendahuluan interupsi

NEXT

BOUND

Instruksi BOUND dibuat pertama kali untuk mikroprosesor 80186, merupakan instruksi perbandingan yang mungkin menyebabkan interupsi (tipe vector nomor 5). Instruksi ini membandingkan isi memori register 16-bit atau 32-bit dengan isi memori dua word atau double word: batas atas dan bawah. Jika nilai dalam register yang dibandingkan dengan memori tidak berada dalam batas atas dan bawah, interupsi tipe 5 terjadi. Akan tetapi, jika nilainya masih berada dalam batas maka instruksi berikutnay dalam program akan dieksekusi.

Sebagai contoh, jika instruksi BOUND SI, DATA dieksekusi maka lokasi DATA berukuran word berisi batas bawah, dan lokasi DATA+2byte yang berukuran word berisi batas atas. Jika angka yang terdapat dalam SI lebih kecil dari lokasi memori DATA atau lebih besar dari lokasi memori DATA+2byte maka interupsi tipe 5 terjadi. Perlu diketahui bahwa insterupsi ini terjadi, alamat return menunjuk pada instruksi BOUND, bukan pada instruksi yang mengikuti BOUND. Ini berbeda dengan instruksi biasa, dimana alamat return menunjuk pada instruksi berikutnya dalam program.


Pendahuluan interupsi

NEXT

ENTER dan LEAVE

Instruksi enter dan leave, pertama dibuat untuk mikroprosesor 80186, digunakan dengan frame stack, dimana mekanismenya digunakan untuk mneneruskan parameter pada sebuah priosedur. Frame stack menyediakan area memori dinamis untuk prosedur dalam lingkungan multipengguna.

Instruksi ENTER menciptakan sebuah frame stack dengan mem-push BP kedalam stack dan kemudian mengisi BP dengan alamat frame paling atas. Hal ini membuat frame menjadi variabel untuk di akses melalui register BP. Instruksi ENTER berisi dua operand; operand pertama menentukan jumlah byte yang dicadangkan untuk variabel pada frame stack dan operand kedua level prosedur.

Misalkan instruksi ENTER 8,0 dieksekusi. Instruksi ini mengalokasikan 8 byte untuk frame stack dan angka 0 menentukan level 0. gambar 6-9 memperlihatkan frame stack yang dibuat oleh instruksi ini. Perlu diketahui bahwa instruksi ini menympan BP ke stack paling atas. Kemudian, instruksi itu mengurangi stack pointer dengan 8, meninggalkan 8 byte ruang memori untuk penyimpanan data temporer. Lokasi paling atas dari 8 byte area penyimpanan temporer ini dialamati oleh BP. Instruksi LEAVE mengembalikan proses ini dengan mengsi SP dan BP dengan nilai awal mereka.


Pendahuluan interupsi

NEXT

GAMBAR 6-9 Frame stack

buatan instruksi ENTER 8.0.

Perhatikan bahwa BP disimpan

di awal bagian teratas frame

stack. Frame stack dfikuti area

8 byte yang disebut frame stack


Pendahuluan interupsi

NEXT

CONTOH 6-21

;A sequence used to call system software that

;uses parameters stored in a stack frame.

0000 CS 0004 00ENTER 4,0;create 4 byte frame

0004 Al OOC8 RMOV AX,DATA1

0007 69 46 FCKOV [BP-41,AX;save para I

OCCA Al OOCA RMOV AX,DATA2

OOGD 89 46 FEMOV [BP-21,AX;save para 2

CUIOEB 0100 RCALLSYS;call subroutine

00138B 46 FCMOV AX,[BP-41;get result I

0016A3 OOCS RMOV DATA1,AX;save result 1

00198B 46 FEMOV AX.[BP-21;get result 2

001CA3 OOCA RMOV DATA2,AX;save result 2

OOIF C9LEAVE

(other software continues here)

;system subroutine that uses the stack frame parameters

;

0100SYSPROC NEAR

0100 60PUSHA

0101 88 46 rcMOV AX, (BP-4)/get parm 1

0104 81 It VXNov NX (BP-2)/get parm 2

(software that uses the parameters)

0130 89 46 FCMOV (BP-4),AX;save result 1

0133 89 SE FEMOV (BP-2),BX;save result 2

0136 61POPA

0137 C3RET

0138SYSENDP


Pendahuluan interupsi

NEXT

  • Soal

  • Apa yang dimaksud dengan pengertian pendahuluan interupsi!

  • Buatlah tabel dari vektor interupsi!

  • Gambarkan Frame stack buatan instruksi ENTER 8.0. perhatikan bahwa BP disimpan di awal bagian teratas frame stack. Frame stack dfikuti area 8 byte yang disebut frame stack!

  • Buatlah contoh program bahasa assembly dari enter dan leave!


Pendahuluan interupsi

TUTUP

Terima Kasih


  • Login