首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在x86程序集中导致idiv指令溢出的最小值

在x86程序集中导致idiv指令溢出的最小值
EN

Stack Overflow用户
提问于 2016-10-12 00:55:18
回答 1查看 533关注 0票数 0

我正在写一个程序来练习一些逆向工程技术。以下是英特尔( x86 )汇编代码的相关行:

代码语言:javascript
复制
mov, eax [ebp - 20]
cdq
idiv ecx

通过我的输入(一个网络套接字),我可以控制在执行这些汇编代码行之前进入eaxecx的字节数。

我的问题是:为了引起除法溢出,我可以使用的最小值(正数或负数)是多少(除法溢出不是“除以零”错误,但返回的结果大于32位,因此不适合eax (返回寄存器)。

提前感谢您的帮助!

EN

回答 1

Stack Overflow用户

发布于 2016-10-12 01:07:14

因为你的被除数是32位的,并且它被cdq符号扩展到64位,所以获得溢出的唯一方法是由于二的补码的不对称性,即它可以表示-2^31,但不能表示+2^31。因此,您可以使用-2^31 / -1

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39982609

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档