小编Mar*_*yse的帖子

使用外部c代码编译asm引导加载程序

我在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)

x86 gcc nasm inline-assembly bootloader

5
推荐指数
1
解决办法
1353
查看次数

标签 统计

bootloader ×1

gcc ×1

inline-assembly ×1

nasm ×1

x86 ×1