root / linux_boot.S @ 07ce05ea
History | View | Annotate | Download (607 Bytes)
1 | 07ce05ea | bellard | /* |
---|---|---|---|
2 | 07ce05ea | bellard | * QEMU Boot sector to launch a preloaded Linux kernel |
3 | 07ce05ea | bellard | * Copyright (c) 2004 Fabrice Bellard |
4 | 07ce05ea | bellard | */ |
5 | 07ce05ea | bellard | |
6 | 07ce05ea | bellard | #define LOAD_SEG 0x9000 |
7 | 07ce05ea | bellard | |
8 | 07ce05ea | bellard | .code16 |
9 | 07ce05ea | bellard | .text |
10 | 07ce05ea | bellard | .globl linux_boot_start |
11 | 07ce05ea | bellard | .globl linux_boot_end |
12 | 07ce05ea | bellard | |
13 | 07ce05ea | bellard | linux_boot_start: |
14 | 07ce05ea | bellard | cli |
15 | 07ce05ea | bellard | cld |
16 | 07ce05ea | bellard | mov $LOAD_SEG, %ax |
17 | 07ce05ea | bellard | mov %ax, %ds |
18 | 07ce05ea | bellard | mov %ax, %es |
19 | 07ce05ea | bellard | mov %ax, %fs |
20 | 07ce05ea | bellard | mov %ax, %gs |
21 | 07ce05ea | bellard | mov %ax, %ss |
22 | 07ce05ea | bellard | mov $0x8ffe, %sp |
23 | 07ce05ea | bellard | ljmp $LOAD_SEG + 0x20, $0 |
24 | 07ce05ea | bellard | |
25 | 07ce05ea | bellard | 1: |
26 | 07ce05ea | bellard | .fill 510 - (1b - linux_boot_start), 1, 0 |
27 | 07ce05ea | bellard | |
28 | 07ce05ea | bellard | /* boot sector signature */ |
29 | 07ce05ea | bellard | .byte 0x55 |
30 | 07ce05ea | bellard | .byte 0xaa |
31 | 07ce05ea | bellard | |
32 | 07ce05ea | bellard | linux_boot_end: |