; perform self-relocation
cld
- mov si, 0x7c00
- mov di, 0x600
- mov cx, 0x100 ; 256 words = 512 bytes
- rep movsw
+ mov esi, 0x7c00
+ mov edi, 0x600
+ mov ecx, 0x80 ; 128 dwords = 512 bytes
+ rep movsd
; some BIOSes may set CS to 0x7c0, work around that
jmp 0:real_start
real_start: