I am trying to make a static IDT in 32-bit mode with only assembly.
I can make the lower half of the address without errors by using dw isr
, but when I use dw isr >> 16
to define the higher half of the address, NASM gives me the following error:
idt.asm:25: error: shift operator may only be applied to scalar values
Is there any way to make the IDT using NASM ?
PS. Yes, I've seen this post, but I don't want to use the linker since my kernel is very small and all written in assembly.