为什么我的程序集子例程被调用,即使我没有在引导加载程序中_start调用它



我目前正在开发一个bios引导加载程序,我是汇编新手。我一直在阅读它,我理解它的工作原理,但有一些事情我不理解,涉及到我的汇编代码的执行顺序。

所以基本上我的子程序_print是如何被调用的,即使我没有调用它。第二,如果一直在文件末尾,即使我没有到达,它是如何分配bios幻数的。

如果有任何帮助,我将不胜感激。

[ORG 0000:7C00]
global _start 
_print:
mov ah, 0x0e 
mov al, '['
int 0x10
mov al, '+'
int 0x10
mov al, '['
int 0x10
ret
_start:
jmp $
times 510 - ($-$$) db 0
dw 0xAA55

与操作系统运行的可执行文件不同,引导扇区没有指定任意入口点的方法;它总是从第一条指令开始。因此,_start标签不能作为指定从何处开始的方法。你必须把代码放在第一位。

相关内容

  • 没有找到相关文章

最新更新