【问题标题】:When does the instruction pointer point to zero?指令指针何时指向零?
【发布时间】:2016-01-10 07:16:29
【问题描述】:

指令指针指向下一条要执行的指令。但是在什么条件下它指向零,意味着什么?

【问题讨论】:

  • 如果您将其设置为零(例如通过跳跃)或它环绕,则它指向零。这意味着 cpu 将执行地址为零的任何内容(与往常一样)。除此之外,您需要提供更多详细信息。
  • 您的意思是“指向零”还是“加载为零”?无论哪种方式,环境和影响都取决于架构。
  • 在某些架构上,它可能会导致 CPU 故障(异常),在其他架构上,例如 jmp $0,意味着从该地址执行指令。一些架构甚至可能没有映射或可用的地址空间。

标签: assembly linux-kernel operating-system kernel-module


【解决方案1】:
  1. 堆栈损坏: ret 指令将地址从堆栈中弹出到 EIP 寄存器中。当堆栈损坏时(可能由于溢出),可能会导致 EIP 设置为零。

  2. 使用直接跳转到零

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-04
    • 2017-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-16
    • 1970-01-01
    相关资源
    最近更新 更多