EnableDisable Interupsi Kelas 10 SMK Teknik Mikroprosesor 1
TEKNIK MIKROPROSESOR
139 maskable tidak dapat digagalkan disable oleh programmer, dan interup ini
diterima ketika devais peripheral meminta rutin layanan. Interupsi ini umumnya tersedia untuk layanan fungsi yang sangat penting, dan dapat diset
enable atau disable oleh programmer. Dalam CPU Z80 terdapat enable interup flip-flop IFF yang dapat di-set atau di-reset oleh programer melalui
instruksi Enable Interrupt EI dan Disable Interrupt DI. Ketika IFF di-reset maka
interupsi tidak dapat diterima oleh CPU, kedua enable flip-flop itu adalah IFF1 dan IFF2.
Gambar 3.19. Interupsi Flip-Flop State IFF1 digunakan untuk inhibit interupsi, sementara itu IFF2 digunakan
sebagai tempat penyimpanan tempore untuk IFF1. Dengan melakukan reset terhadap CPU akan memaksa IFF1 dan IFF2 pada
kondisi reset, yaitu interupsi di-disable. Interupsi dapat diset menjadi enable setiap saat melalui instruksi EI dari programer, ketika instruksi EI dijalankan
maka semua permintaan interupsi yang ditunda tidak akan diterima sampai setelah instruksi berikut setelah EI dijalankan.
Instruksi tunda diperlukan manakala instruksi berikutnya merupakan instruksi return, dan interup tidak dilayani sampai proses return lengkap. Instruksi EI
melakukan setting terhadap kedua flip-flop IFF1 dan IFF2 pada kondisi enable, begitu juga saat CPU menerima interup maskable maka IFF1 dan
IFF2 secara otomatis akan reset, dan berikutnya terjadi inhibid terhadap interup sampai programer memberikan instruksi EI.
Tujuan dari IFF2 adalah untuk mengamankan status IFF1 ketika interup non- maskable terjadi, jadi IFF1 akan reset untuk mengjaga interup berikutnya
sampai dilakukan re-enable oleh programer. Dengan demikian setelah interup
TEKNIK MIKROPROSESOR
140 non-maskable diterima, makainterup maskable disable tetapi state IFF1
sebelumnya telah tersimpan sehingga keseluruhan state CPU memberikan prioritas terhadap interup non-maskable untuk bisa di-restore setiap waktu.
Pada saat Register A dimuati data dari Register I LD A, I dan instruksi memuati Register A dengan data dari Register R LD A, R dijalankan, maka
state IFF2 disalin ke parity flag sehingga bisa diuji atau disimpan. Cara kedua proses restore status IFF1 adalah melalui pelaksanaan Return
dari instruksi interup Non-Maskable RETN. Instruksi ini mengindikasikan bahwa layanan rutin interup non-maskable adalah terselesaikan dan isi IFF2
selanjutnya disalin kembali ke IFF1 sehingga status IFF1 siap menerima interup non-maskable sebagai interup prioritas dan otomatis terjadi restore.
Table berikut merupakan rangkuman dampak beberapa instruksi pada kedua buah flip-flop.
Table Interup EnableDisable, Flip-Flop
Action IFF1
IFF2 Comments
CPU Reset Interup Maskable, INT Disable
Instruksi DI dijalankan Maskable INT Disable
Instruksi EI dijalankan 1
1 Maskable, INT Enable
Instruksi LD A,I dijalankan IFF2
→ Parity Flag Instruksi LD A,R dijalankan
IFF2 → Parity Flag
NMI diterima Maskable
Interup Instruksi RETN dijalankan
IFF2 IFF2
→indikasi layanan rutin interup nonmaskable selesai