/* on x86 old clang doesn't support .code16 newer clang supports it but creates 6-byte jumps instead of 3-byte ones which makes us go over boot sector size. Starting with 3.9 clang emits 3-byte jumps but still creates 8-bytes movl instead of 5-bytes, so code overflows into data. */ .code16 jmp far .org 4 jmp nearer .org 6 movl nearer, %ebx .org 11 .space 100 nearer: .space 200 far: .byte 0