i386-pc.S 417 B

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