尝试在程序集中使用div时获取浮点异常

时间:2012-03-20 18:49:14

标签: assembly x86

我正在尝试在程序集中运行以下代码:

  mov        %si, %ax
  mov        $15, %si
  div        %si
  mov        %eax, %esi

当我编写程序时,它会编译,但在运行时它会给我一个浮点异常。 我尝试用%ah%si替换最后一行的参数。

简而言之,我试图将%esi除以15。我只想要一个int,而不需要double

谢谢

1 个答案:

答案 0 :(得分:14)

div指令将双字参数dx/ax除以操作数。如果商数太大而无法容纳一个单词,则会抛出该异常。

参考:http://siyobik.info.gf/main/reference/instruction/DIV

dx注册表中有什么内容?最有可能dx/ax除以15不适合16位字。