The 8086 CPU is divided into two independent functional parts, the program will overwrite the "jmp to_the_end" with two NOPs (which is encoded as "0x9090").
The 8086 CPU is divided into two independent functional parts, the bus interface unit and the execution unit. This self-modifying program will overwrite the "jmp to_the_end" with two NOPs (which is encoded as "0x9090").