如何从装配操作系统加载.BAS文件

时间:2017-10-15 05:06:15

标签: assembly x86-16 bootloader basic

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

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

1 个答案:

答案 0 :(得分:0)

  

我的启动加载程序是非常基本的,它应该做的只是显示一些文本并将.bas文件加载到内存中并执行它。

这比你想象的要困难。运行BASIC程序需要一个解释器。除非您使用ROM中的BASIC(自20世纪80年代以来一直没有用过的东西)的真正IBM PC,否则您需要在引导扇区中包含一个解释器。 (这不合适。)

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