我目前正在开发一个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
标签不能作为指定从何处开始的方法。你必须把代码放在第一位。