I'm currently writing a real mode OS (not to use BIOS features, just because I want it to run on ancient hardware) and I'm having a hard time figuring out how distinguish between a regular interrupt call and a NMI in my IRQs, for example:
Define the test IRQ, doesn't need to do much this is just for testing.
Code: Select all
intzero:
mov si, interrupt_zero_string
call printstring
iret
interrupt_zero_string:db "zero", 0xa 0x0
Code: Select all
xor ax, ax
mov word [0], intzero
mov [2], ax
Code: Select all
mov bl, 0
mov al, 7
div bl