I Can't Get Interrupts Working: Difference between revisions

[unchecked revision][unchecked revision]
Content deleted Content added
Combuster (talk | contribs)
promoted to the FAQ page
No edit summary
Line 119:
 
should display a smiley on the top-left corner ... then the CPU is halted indefinitely.
 
=== FASM notice ===
 
Since fasm don't accept the normal way as described Above, i will describe it.
Fasm does however support shl, and shr.
so to describe the higher part of a irs address, we just use ''label shl 0x10''
were label are the name of the irs.
To define the higher part, we need to write a little more, since fasm use 64 bit, before compiling.
This means that IF we just shl and shr, it will be that same as before.
This is how we are supposed to do: (label shl 0x30) shr 0x30
simple, but not like Nasm.
a little example, so you can see how it works:
idt:
dw (isr1 shr 0x10) the low part of the address
dw 0x8 ; selector
db 0
db 010001110b ; type
dw ((isr1 shl 0x30) shr 0x30) ; the high part of the address
 
 
isr1:
mov ax,0xdead
 
 
[[Category:Troubleshooting]]