gpt4 book ai didi

assembly - 有哪些 x86 指令会对 ESP 产生副作用?

转载 作者:行者123 更新时间:2023-12-02 19:35:24 25 4
gpt4 key购买 nike

我知道callret会修改esp的值,并且push pop 有许多变体,但是还有其他指令会影响堆栈指针吗?

最佳答案

以下指令将堆栈指针修改为隐式操作数1:

  • 通话
  • 输入
  • int n/into/int 3
  • iret/iretd
  • 离开
  • 弹出
  • ret/retf
  • 系统输入
  • sysexit
  • 普莎
  • 波帕
  • pushf/pushfd/pushfq
  • popf/popfd/popfq
  • vmlaunch/vmresume
  • 退出

每条可以编写任意通用寄存器的指令(例如 imul reg、r/m32、imm8 或 add/sub)都可以根据需要编写 ESP,但仅列出一个是有趣的即使您没有明确提及,堆栈指针也是一个操作数。我将区分主要副作用和副作用的责任留给您。

请记住,任何能够生成异常的指令都可能修改堆栈指针,至少是内核堆栈指针(如果不是用户空间)。
为了避免轻视您的问题,我没有考虑此类说明。

这些是我在创建此答案时通过搜索英特尔手册可以找到的所有说明。
虽然我尽了最大努力仔细检查手册,但我不会发誓遵守该 list 。

<小时/>

1 SPESPRSP

关于assembly - 有哪些 x86 指令会对 ESP 产生副作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44144038/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com