__asm__(" \
NewDblFltHandler:\n\t \
pushfl\n\t \
cli;\n\t \
cld;\n\t \
pushal;\n\t \
pushl %ds;\n\t \
\n\t \
// setup default data selectors\n\t \
movw %ss,%ax\n\t \
movw %ax,%ds\n\t \
\n\t \
// get frame ptr\n\t \
lea 40(%esp),%eax\n\t \
pushl %eax\n\t \
call _HandleDoubleFault\n\t \
addl $4,%esp\n\t \
\n\t \
popl %ds\n\t \
popal\n\t \
popfl\n\t \
// remove error code from stack and replace with reason code\n\t \
movl $" STR(REASON_DOUBLE_FAULT) ",(%esp)\n\t \
// call debugger loop\n\t \
jmp NewInt31Handler\n\t")