.. Programming for Asynchronous Events: Interrupts
emu: about interrupts
When a hardware component (ex: a peripheral device) needs CPU attention,
the controller associated with this component:
1. sends Interrupt Request (INTR) signal to the CPU
2. puts Interrupt Number (0 to FFh) on data bus
CPU uses interrupt number to index into interrupt vector table (IVT)
Each entry of this table is called an interrupt vector
Each entry contains address of Interrupt Handler (ISR)
CPU transfers control to the corresponding ISR
Interrupt returns with an IRET
Allows the program to "call"
1. the operating system
2. the BIOS
The program uses functionality already present to accomplish tasks that may
be quite complex.
INT 21h / AH=2 - write character to standard output.
entry: DL = character to write, after execution AL = DL.
; print character 'a'
mov ah, 2
mov dl, 'a'
; print carrige return and new line:
mov ah, 2
mov dl, 0Dh
mov dl, 0Ah
; prints a byte in binary
mov cx, 8
p1: mov ah, 2
mov dl, '0'
test bl, 10000000b ;test leftmost bit - "and" & set flag
mov dl, '1'
zero: int 21h ;print function.
shl bl, 1
; wait 5 seconds (5 million microseconds)
mov cx, 4Ch ; 004C4B40h = 5,000,000
mov dx, 4B40h
mov ah, 86h
.. Interrupt Lists