ivt_backup: push ds push es xor ax, ax mov ds, ax mov es, ax mov si, ax mov di, 0x0100 ; int 0x40 address mov cx, 0x0040 ; 0x20 interrupts * 2 words repe movsw pop es pop ds ret ; set item in interrupt vector table ; in: bx interrupt number ; cs:dx new handler address ivt_set: push ax push es xor ax,ax mov es,ax sal bx,1 sal bx,1 mov [es:bx], dx mov [es:bx+2], cs pop es pop ax ret