如何从汇编操作系统加载 .BAS 文件

How do I load .BAS files From An Assembly Operating System

我需要从引导加载程序中加载一些基本 (.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))

如果有人能帮助我,我将不胜感激。 :)

My boot loader is very basic, and all it is supposed to do is display some text and load a .bas file into memory and execute it.

这比你想象的要难。 运行 BASIC 程序需要解释器。除非您使用的是带有 ROM 中的 BASIC 的真正 IBM PC(自 1980 年代以来就没有了),否则您需要在引导扇区中包含一个解释器。 (这不合适。)

考虑加载不同类型的可执行文件 -- 例如 COM 文件。