When the BIOS passes control to the code loaded from the MBR, the first instruction seems to be
jmpi go, BOOTSEG
where go is another label preceding the next instruction and BOOTSEG is 0x07c0. The reasoning for executing such an instruction seems to be that when the BIOS passes control over, the segment registers are set to zero, and this instruction sets the segment register to appropriate values(in this case 0x07c0).
My question is: Why should the segment register be set to that value? The fact that the jmp instruction executes as expected shows that the loaded-MBR-code can execute fine without changing the segment values. What would happen if this segment change was not done?