02 in al, 0x21 ; read interruptmask register 03 or al, 2 ; set bit for IRQ1 04 o
ID: 3612182 • Letter: 0
Question
02 in al, 0x21 ; read interruptmask register
03 or al, 2 ; set bit for IRQ1
04 out 0x21, al ; write back mask register
05 mov ax, 0x4c00 ; terminate program
06 int 0x21
Modify instruction_03 for the following:
I. set bit for IRQ0
II. set bit for IRQ6
III. set bits for IRQ1, IRQ3 andIRQ4
IV. clear bit for IRQ5
Question: Suggest a reason forthefollowing: [5 marks]
I. We should disable interrupts whilehooking interrupt 8h, i.e. while placing its segment and offset inthe interrupt vector table.
II. We need not do this for interrupt80h.
Explanation / Answer
Question 1: 1. Set bit to disable IRQ0 IN AL, 21H ; Read interruptmaskregisterOR AL , 1 ; set bit 1 OUT 20H , AL ; modify the interrupt mask register 2. Set bit to disable IRQ6 IN AL, 21H ; Read interruptmaskregister
OR AL , 10000000B ; set bit 6 OUT 21H , AL ; modify the interrupt maskregister 2. Set bit to disable IRQ6 IN AL, 21H ; Read interruptmaskregister
OR AL , 10000000B ; set bit 6 OUT 21H , AL ; modify the interrupt maskregister 2. Set bit to disable IRQ6 IN AL, 21H ; Read interruptmaskregister
OR AL , 10000000B ; set bit 6 OUT 21H , AL ; modify the interrupt maskregister 4. Set bit to disableIRQ5 IN AL, 21H ; Read interruptmaskregister
OR AL , 5 ; set bit 1 OUT 21H , AL ; modify the interrupt maskregister Question 2: Inorder to hook any interrupt we need to disable remaininginterrupts.But comming to interrupt 80h as it is a defaultinterrupt handler has the irritating behavior of switching the RealTime Clock interrupt off after a time-out expires i.e doesn't needoffset in the interrupt vector table . Hope this will helpyou..
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.