Logo __vector__ 的博客

博客

汇编语言写一个能用 VMware 启动的界面

...
__vector__
2025-12-01 12:56:05

本文章由 WyOJ Shojo 从洛谷专栏拉取,原发布时间为 2025-04-29 21:12:12

本文章不是什么正经的讲解,纯娱乐,另外引用了别人的代码,如果侵权可以联系删除。

我大约 4 年前在 CSDN 写的这个,看到不少人写这个类型的专栏,我也放在洛谷试试。

软件准备

首先,安装 VMware,版本没有什么要求。

再安装 nasm 并配好环境变量,用来将汇编源码编译为可执行文件。

之所以不用 masm 是因为 masm 不能在 64 位系统用。

实际操作

先创建一个文件,命名为 boot.s,内容如下:

BOOTSEG equ 0x07c0              ; BIOS 加载 bootsect 代码的原始段地址;

start:
        jmp BOOTSEG:go          ; 段间跳转。 INITSEG 指出跳转段地址, 标号 go 是偏移地址。
go:
        mov ax,cs               ; 段寄存器 cs 值-->ax,用于初始化数据段寄存器 ds 和 es。
        mov ds,ax
        mov es,ax
;画图
        mov ah,00
        mov al,06h
        int 10h ;设置640*480、16色彩色分辨率
        mov dx,50
back_1:
        mov cx,100
back_2:
        mov ah,0ch
        mov al,71h ;白底蓝色图 
        mov bh,0
        int 10h
        inc cx
        cmp cx,100
        jnz back_2
        inc dx
        cmp dx,150
        jnz back_1
loop1:  jmp loop1               ; 死循环。

        times 510-($-$$) db 0   ; 表示以后语句从地址 510(0x1FE)开始存放。
        dw 0xAA55               ; 有效引导扇区标志, 供 BIOS 加载引导扇区使用。

再在其同一文件夹下新建一个名为 makeos.bat 的文件。
内容如下:

nasm -f bin boot.s -o boot
dd if=boot of=boot.img
pause

注:dd 命令用于制作 img 映像。

然后,运行 makeos.bat,下面是结果,理论上会生成一个 boot.img

在这里插入图片描述

然后使用 VMware 创建虚拟机。

在这里插入图片描述

操作系统选择“其他”。

在这里插入图片描述 接下俩的操作,均按照默认就可以。

完成创建之后,添加硬件,此时应选择软盘驱动器,软盘则选择源码文件夹下的 boot.img。

选择界面:
在这里插入图片描述

最后,启动虚拟机。

注:需要将 VMware 最大化,否则显示不正常。

下面是正常的效果:
运行效果

引用

程序 boot.s 的源代码来自于一本书,我忘了什么名字。不过当时讲的仅仅是一个界面绘制,我把它搬运到了系统启动。

评论

暂无评论

发表评论

可以用@mike来提到mike这个用户,mike会被高亮显示。如果你真的想打“@”这个字符,请用“@@”。