Код:
kernel.asm
bits 32
section .text
;multiboot spec
align 4
dd 0x1BADB002
;magic
dd 0x00
;flags
dd - (0x1BADB002 + 0x00)
;checksum
global start
extern kmain
start:
cli
mov esp, stack_space
call kmain
hlt
section .bss
resb 8192
stack_space:
kernel.c
void kmain(void)
{
const char *str = "My First Kernel";
char *vidptr = (char*)0xb8000;
unsigned int i = 0;
unsigned int j = 0;
while (j < 80 * 25 * 2) {
vidptr[j] = ' ';
vidptr[j+1] = 0x07;
j = j+2;
}
j = 0;
while (str[j] != '\0') {
vidptr[i] = str[j];
vidptr[i+1] = 0x07;
++j;
i = i+2;
}
return;
}
link.ld
OUTPUT_FORMAT(elf32-i368)
ENTRY(start)
SECTIONS
{
. = 0x100000;
.text : { *(.text) }
.data : { *(.data) }
.bss : { *(.bss) }
}
Я выполняю команды:
nasm -f elf32 kernel.asm -o kasm.o
Потом:
gcc -m32 -c kernel.c -o kc.o
И:
ld -m elf_i386 -T link.ld -o kernel kasm.o kc.o
После последней вылезет ошибка:
ld: target elf32-i368 not found
Как исправить?
Спасибо!