操作系统上有个问题?

我想把《orange`s一个操作系统的实现》和《30天自制操作系统》和起来看,所以想在linux上用nasm+gcc来写操作系统,现在想用汇编调用C(我汇编没啥基础),但是要么加org出instruction expected,要么extern那边说不支持,求教个为大佬教一下.

源代码和make的部分:

asm_entry.asm<<<

org 0xc200

[section .text]

global _start
global vga
extern c_entry

_start:
call c_entry

mov ebx,0
mov eax,1
int 0x80
vga:
mov ax,0x13
mov ah,0x00
int 0x10
ret

c_entry.c<<

extern void vga();

void c_entry()
{
vga();
return;
}

$make:

nasm -f elf asm_entry.asm -o ae.bin

gcc -m32 -c -o ce.bin c_entry.c

ld -m elf_i386 -s -o ld_ac.bin ae.bin ce.bin

你可以参考书上的源代码,并且用它指定的编译器、汇编器、链接器,不同的编译器、汇编器、链接器,生成的方法都不同。