.code16 .text .globl _start _start: ljmp $0x0000, $0x0fa1 /* Reset CS by far jump to next instruction */ xorw %ax, %ax movw %ax, %ds movw %ax, %ss movw 0x7000, %ax movw %ax, %sp sti xorl %eax, %eax movw %ax, %es movw %ax, %fs movw %ax, %gs pushl %eax /* MSW of LBA */ pushl %eax /* LSW of LBA */ pushw %ax /* Buffer segment */ movw 0x7c00, %bx pushw %bx /* Buffer offset */ pushw $0x1 /* Sector count */ pushw $0x10 /* Size of packet */ movw %sp, %si movb $0x80, %dl movb $0x42, %ah int $0x13 addw $0x10, %sp cli jmp 0x7c00