5
我试图运行汇编下面的代码使用DIV:获取浮点异常,而试图在装配
mov %si, %ax
mov $15, %si
div %si
mov %eax, %esi
当我做我的程序,它编译,但在运行时,它给了我一个浮点例外。 我试图用%ah
和%si
替换最后一行的参数。我想分%esi
15
。我只想要一个int
,并且不需要double
。
谢谢
我试图运行汇编下面的代码使用DIV:获取浮点异常,而试图在装配
mov %si, %ax
mov $15, %si
div %si
mov %eax, %esi
当我做我的程序,它编译,但在运行时,它给了我一个浮点例外。 我试图用%ah
和%si
替换最后一行的参数。我想分%esi
15
。我只想要一个int
,并且不需要double
。
谢谢
的div
指令由操作数除以双字参数dx/ax
。如果商数太大而不适合单词,它会抛出异常。
参考:http://siyobik.info.gf/main/reference/instruction/DIV
你在dx
寄存器有哪些?最有可能的dx/ax
除以15
不适合16位单词。
没有(或随机的东西),我认为我的操作是%si /%ax,它存储在%ax – juliensaad 2012-03-20 18:53:05
然后你需要清除(设为零)'dx'寄存器。因为它代表了输入分红的前16位。 – Mysticial 2012-03-20 18:54:40
工作!非常感谢,我会在7分钟内给出答案 – juliensaad 2012-03-20 18:56:48