我正在尝试理解x86汇编中的中断。
我尝试触发一个除以零错误,对应代码为0。
int $0
我原本以为这个行为与除以零相同,但实际上不是。
movl $0, %edx # dividend
movl $0, %eax # dividend
movl $0, %edi # divisor
divl %edi
在前一种情况下,我的程序在Linux上崩溃,并显示“分段错误”和退出码139。而在后一种情况下,我的程序在Linux上崩溃,并显示“浮点异常”和退出码136。
我该如何使用中断来触发与使用零除法器调用div指令相同的错误?