在VirtualBox上运行一个操作系统

modit 发布于 4 天前 assembly 最后更新 4 天前 12 浏览

我在Windows 7上使用VirtualBox 4.1.14,并试图让它运行我的测试操作系统。我正在使用下面的汇编代码,并正在编译它 nasm -f bin -o boot.bin boot.asm 我试图将生成的bin文件转换为VB4.1.14可以使用的ISO文件(我不想付钱或者试用程序有任何限制)。我曾尝试下载不同的转换器,如bin2iso,但每当我尝试打开其内部的结果ISO(如VERR_NOT_SUPPORTED等)时,VB会出现不同的错误。 我更喜欢该解决方案是一个命令行工具,所以我可以在批处理脚本中使用它来加快测试速度。

BITS 16
start:
    mov ax, 07C0h       ; Set up 4K stack space after this bootloader
    add ax, 288     ; (4096 + 512) / 16 bytes per paragraph
    mov ss, ax
    mov sp, 4096
mov ax, 07C0h       ; Set data segment to where we're loaded
    mov ds, ax
mov si, text_string ; Put string position into SI
    call print_string   ; Call our string-printing routine
jmp $           ; Jump here - infinite loop!
text_string db 'This is my cool new OS!', 0
print_string:           ; Routine: output string in SI to screen
    mov ah, 0Eh     ; int 10h 'print char' function
.repeat:
    lodsb           ; Get character from string
    cmp al, 0
    je .done        ; If char is zero, end of string
    int 10h         ; Otherwise, print it
    jmp .repeat
.done:
    ret
times 510-($-$$) db 0   ; Pad remainder of boot sector with 0s
    dw 0xAA55       ; The standard PC boot signature
已邀请:

tiste

赞同来自:

您可以像使用this answer to a different question一样使用mkisofs工具。该工具也可用于Linux。

nsit

赞同来自:

你可以使用dd(搜索dd for windows)为初学者创建一张软盘。二进制文件只写入1440 kib文件的前256个字节。

dd if=/dev/zero of=floppy.img ibs=1k count=1440
dd if=boot.img of=floppy.img conv=notrunc
现在我们开始:

要回复问题请先登录注册