我需要从引导加载程序中加载一些基本(.bas)文件。
我的引导加载程序是非常基本的,它所要做的就是显示一些文本并将一个.bas文件加载到内存中并执行它。
(我对装配非常陌生,还没有完全理解它,所以你可能需要解释一些事情。)
到目前为止,这是我的简单代码(它所做的只是显示文本):
BITS 16
start:
mov ax, 07C0h
add ax, 288
mov ss, ax
mov sp, 4096
mov ax, 07C0h
mov ds, ax
mov si, text_string
call print_string
jmp $
text_string db 'MyOS BootLoader...', 10, 13
db 'Looking For Kernel..., 10, 13
; *** INSERT .BAS LOADING CODE HERE :D ***
print_string:
mov ah, 0Eh
.repeat:
lodsb
cmp al, 0
je .done
int 10h
jmp .repeat
.done:
ret
times 510-($-$$) db 0
dw 0xAA55 (我的代码是基于MikeOS的MikeOS(发现这里))
如果有人能帮我,我会很感激的。:)
发布于 2017-10-15 05:54:13
我的引导加载程序是非常基本的,它所要做的就是显示一些文本并将一个.bas文件加载到内存中并执行它。
这比你想象的更难。运行基本程序需要一个解释器。除非你是在一台真正的IBM PC上,在ROM中安装BASIC (从上世纪80年代起就不再是这样了),否则你需要在你的引导区中包含一个解释器。(这并不适合。)
考虑加载不同类型的可执行文件--比如COM文件。
https://stackoverflow.com/questions/46751903
复制相似问题