diff options
Diffstat (limited to 'stage3/isr.lua')
-rw-r--r-- | stage3/isr.lua | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/stage3/isr.lua b/stage3/isr.lua index 3c88c5e..4810f01 100644 --- a/stage3/isr.lua +++ b/stage3/isr.lua @@ -6,6 +6,13 @@ for _, x in pairs({8, 10, 11, 12, 13, 14, 17, 21, 29, 30}) do has_error_code[x] = true end +print("section .data") +print("idt_entries:") +for i = 0, 255 do + print("dq isr_"..i) +end + +print("section .text") for i = 0, 255 do print("isr_" .. i .. ":") print("cli") @@ -18,11 +25,6 @@ for i = 0, 255 do print("jmp isr_common") end -print("idt_entries:") -for i = 0, 255 do - print("dq isr_"..i) -end - print([[ isr_common: push r15 @@ -42,6 +44,7 @@ isr_common: push rax cld + xor rbp, rbp mov rdi, rsp call interrupt_handler |