sidt (saved_idtr)
lidt (rmidt)
- # modify the int instruction do this here before the
+ # modify the int instruction. do this here before the
# cs-load jumps, to let them flush the instruction cache
mov $int_op, %ebx
movb 8(%ebp), %al
nop
# load registers from the int86regs struct
+ # point esp to the regs struct to load registers with popa/popf
mov %esp, saved_esp
mov %ebp, saved_ebp
mov 12(%ebp), %esp
# call 16bit interrupt
int_op: int $0
+ # BIOS call might have enabled interrupts, cli for good measure
+ cli
# save all registers that we'll clobber before having the
# chance to populate the int86regs structure
mov %ax, %ss
nop
+ # point the esp to our regs struct, to fill it with pusha/pushf
mov saved_ebp, %ebp
mov 12(%ebp), %esp
add $38, %esp