8

我正在阅读:https ://www.cs.bham.ac.uk/~exr/lectures/opsys/10_11/lectures/os-dev.pdf 我在第 8 页阅读了以下内容:

e9 fd ff 00 00 00 00 00 00 00 00 00 00 00 00 00

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

*

00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 AA

最初的三个字节,十六进制为 0xe9、0xfd 和 0xff,实际上是 CPU 制造商定义的机器代码指令,用于执行无限跳转。

他们所说的“进行无休止的跳跃”是什么意思?

4

1 回答 1

8

这只是一个跳到自己的跳跃。没什么特别的。

在 16 位模式下,e9 fd ffjmp rel16. 偏移量0xfffd是 -3,因为跳转偏移量是“从下一条指令的开头”,即从第一个 00 回退 3 个字节,所以回到jmp.

于 2015-12-10T20:11:17.430 回答