I was reading this: https://www.cs.bham.ac.uk/~exr/lectures/opsys/10_11/lectures/os-dev.pdf And I read on page 8 the following:
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
The initial three bytes, in hexadecimal as 0xe9, 0xfd and 0xff, are actually machine code instructions, as defined by the CPU manufacturer, to perform an endless jump.
What do they mean by "perform an endless jump"?
It's just a jump that jumps to itself. Nothing all that special.
In 16bit mode, e9 fd ff
is an instance of jmp rel16
. The offset 0xfffd
is -3, since jump offsets are "from the start of the next instruction", that's 3 bytes back from that first 00, so back to the jmp
.