我需要从启动加载程序中加载一些基本的(.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
(我的代码基于Mike Saunders的MikeOS(找到here))
如果有人能帮助我,我将不胜感激。 :)
答案 0 :(得分:0)
我的启动加载程序是非常基本的,它应该做的只是显示一些文本并将.bas文件加载到内存中并执行它。
这比你想象的要困难。运行BASIC程序需要一个解释器。除非您使用ROM中的BASIC(自20世纪80年代以来一直没有用过的东西)的真正IBM PC,否则您需要在引导扇区中包含一个解释器。 (这不合适。)
考虑加载不同类型的可执行文件 - 比如COM文件。