26 lines
957 B
NASM
26 lines
957 B
NASM
; Настройки Multiboot
|
|
MULTIBOOT_MAGIC equ 0x1BADB002
|
|
MULTIBOOT_FLAGS equ 0x00
|
|
MULTIBOOT_CHECKSUM equ -(MULTIBOOT_MAGIC + MULTIBOOT_FLAGS)
|
|
|
|
section .multiboot
|
|
align 4
|
|
dd MULTIBOOT_MAGIC
|
|
dd MULTIBOOT_FLAGS
|
|
dd MULTIBOOT_CHECKSUM
|
|
|
|
section .text
|
|
global _start
|
|
extern kernel_main ; Наша функция из Си-файла
|
|
|
|
_start:
|
|
mov esp, stack_space ; Выделяем указатель на стек
|
|
; Передаем параметры от GRUB в Си-код по стандарту cdecl
|
|
push ebx ; Аргумент 2: Адрес структуры Multiboot
|
|
push eax ; Аргумент 1: Магическое число Multiboot
|
|
call kernel_main ; Прыгаем в Си!
|
|
jmp $ ; Если Си-функция вернется — виснем в вечном цикле
|
|
|
|
section .bss
|
|
resb 8192 ; 8 КБ под стек
|
|
stack_space:
|