Не компилируется код на Ассемблере

ORG 0x7C00    ; Загрузка по адресу 0x7C00

[BITS 16]    ; Установка 16-битного режима

section kernel     ; Секция кода

;extern blaz      ; Объявление внешней функции

start:
    mov ax, 0x07C0    ; Загрузка сегмента данных
    mov ds, ax
    mov es, ax

    jmp start32

start32:
    [BITS 32]
    mov esp, 0x100000 ; Инициализация стека
    ;call blaz
    ;mov eax, blaz      ; Вызов функции blaz

    jmp $          ; Бесконечный цикл 

times 510 - ($ - $$) db 0
dw 0xAA55         

есть примерно такой код, оно прекрасно компилируется с помощью

nasm -f bin bootloader.asm -o bootloader.o

до тех пор пока я не добавлю

extern blaz
call blaz
;или
mov eax, blaz 

тут я ловлю ошибку bootloader.asm:18: error: binary output format does not support external references Хорошо, понятно, пользуемся nasm -f elf bootloader.asm -o bootloader.o - которая позволяет нам ловить внешние ссылки, но , в итоге я получаю бесконечный ответ в

bootloader.asm:1: error: parser: instruction expected

пожалуйста, подскажите возможные причины


Ответы (0 шт):