我在asm中编写了一个引导加载程序,并希望在我的项目中添加一些已编译的C代码.
我在这里创建了一个测试函数:
test.c的
__asm__(".code16\n");
void print_str() {
__asm__ __volatile__("mov $'A' , %al\n");
__asm__ __volatile__("mov $0x0e, %ah\n");
__asm__ __volatile__("int $0x10\n");
}
Run Code Online (Sandbox Code Playgroud)
这是asm代码(引导加载程序):
hw.asm
[org 0x7C00]
[BITS 16]
[extern print_str] ;nasm tip
start:
mov ax, 0
mov ds, ax
mov es, ax
mov ss, ax
mov sp, 0x7C00
mov si, name
call print_string
mov al, ' '
int 10h
mov si, version
call print_string
mov si, line_return
call print_string
call print_str ;call function
mov si, welcome
call print_string
jmp mainloop
mainloop:
mov …Run Code Online (Sandbox Code Playgroud)