Pri*_*una 8 cpu boot machine-code sector
我正在阅读: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 制造商定义的机器代码指令,用于执行无限跳转。
他们所说的“执行无休止的跳跃”是什么意思?
这只是一个跳跃到自己的跳跃。没什么特别的。
在 16 位模式下,e9 fd ff是jmp rel16. 偏移量0xfffd为 -3,因为跳转偏移量是“从下一条指令的开始”,即从第一个 00 返回 3 个字节,因此返回到jmp.