第一宏用于注册异常处理程序,首先取得异常处理程序的入口地址(第4行:asm volatile("jmp 1f\n");), 标号1定义在第二个宏中,其后就是异常处理程序,第二个宏的第5行(asm volatile ("1:\t call 2b\n");) 调用第一个宏中的标点号2,然后弹出堆栈第一个双字就得到了异常处理程序入口地址,将这个异常地址和当...