我试图在程序集中运行以下代码:
mov %si, %ax
mov $15, %si
div %si
mov %eax, %esi
Run Code Online (Sandbox Code Playgroud)
当我编写程序时,它会编译,但在运行时它会给我一个浮点异常.我试图通过替换最后一行的参数%ah和%si.
简单地说,我试图划分%esi的15.我只想要一个int,而不需要一个double.
谢谢
Mys*_*ial 15
该div指令将dx/ax操作数除以双字参数.如果商太大而不适合单词,它将抛出该异常.
参考:http://siyobik.info.gf/main/reference/instruction/DIV
你在dx寄存器里有什么?最可能的dx/ax除以15不适合16位字.