rulimine/common/entry_asm.s2.asm_bios_ia32

32 lines
476 B
Plaintext

extern bss_begin
extern bss_end
extern entry
extern gdt
section .entry progbits alloc exec nowrite align=16
global _start
_start:
cld
; Zero out .bss
xor al, al
mov edi, bss_begin
mov ecx, bss_end
sub ecx, bss_begin
rep stosb
lgdt [gdt]
jmp 0x18:.reload_cs
.reload_cs:
mov eax, 0x20
mov ds, ax
mov es, ax
mov fs, ax
mov gs, ax
mov ss, ax
jmp entry
section .note.GNU-stack noalloc noexec nowrite progbits