extern generic_interrupt global asm_generic_interrupt global s_trap_start global s_trap_end section .text align 4 s_trap_start: push r15 push r14 push r13 push r12 push r11 push r10 push r9 push r8 push rdi push rsi push rbp push rdx push rcx push rbx push rax mov rdi, rsp call generic_interrupt s_trap_end: pop rax pop rbx pop rcx pop rdx pop rbp pop rsi pop rdi pop r8 pop r9 pop r10 pop r11 pop r12 pop r13 pop r14 pop r15 add rsp, 16 iretq asm_generic_interrupt: ;push 0x0 ; ;push 0xE ; <- need to create the individual interrupts pushing the specific values to the stack (how to pop them?) push r15 push r14 push r13 push r12 push r11 push r10 push r9 push r8 push rdi push rsi push rbp push rdx push rcx push rbx push rax ; ?? ; cld mov rdi, rsp call generic_interrupt pop rax pop rbx pop rcx pop rdx pop rbp pop rsi pop rdi pop r8 pop r9 pop r10 pop r11 pop r12 pop r13 pop r14 pop r15 ;pop ;pop add rsp, 16 iretq