not mentioned is that some copy protection schemes wrote branches into the code under the prefetch queue so that if you single stepped through it you would hare off into the weeds
"The PC register on the 8088 points to the next instruction to be fetched - often pointing past the address of the currently executing instruction. In fact, the IP 'register' you may be familiar with is not a real register at all - the value of IP is produced as needed from PC by subtracting the length of the instruction queue from PC."
Dashing my childhood worldview against the rocks again, Intel.