ошибка: неожиданный токен в директиве .section .section .multiboot - PullRequest
0 голосов
/ 18 января 2020

Я нашел образец простого загрузчика ядра и попытался понять, как он работает. Но я даже не могу собрать его из-за ошибок:

loader.s:5:20: error: unexpected token in '.section' directive
.section .multiboot
                   ^
loader.s:11:15: error: unexpected token in '.section' directive
.section .text
              ^
loader.s:28:1: error: unknown directive
.sectio .bss 

Вот код загрузчика:

.set MAGIC, 0x1badb002
.set FLAGS, (1<<0 | 1<<1)
.set CHECKSUM, -(MAGIC + FLAGS)

.section .multiboot
    .long MAGIC
    .long FLAGS
    .long CHECKSUM


.section .text
.extern main
.extern callConstructors
.global loader

loader:
    mov $kernel_stack, %esp
    call callConstructors
    push %eax
    push %ebx
    call main

_stop:
    cli
    hlt
    jmp _stop

.sectio .bss 
.space 2*1024*1024;
kernel_stack:

Я компилирую его как as -m32 loader.s.

После поиск Я обнаружил, что мне не нужно использовать .section с .text и .bss, но я не знаю, что такое раздел .multiboot и как исправить эту ошибку. Я не смог найти информацию о .multiboot в Google.

PS Если это важно, я использую MacOS.

...