傲世皇朝动态 NEWS真实、正向、传递价值

当前位置: 首页 > 傲世皇朝动态 > 公司新闻

x86汇编自制操作系统(1)

日期:2023-04-16 09:05:17 / 人气:

一、环境搭建

必备:

nasm:将asm文件编译成纯二进制文件。nasm是只是一个编译器,没有链接功能。可以将汇编文件生成.o文件,但不能将多个.o链接生成二进制文件。即,不能进行多文件编译

masm:目前只用到了其中的link16,可以将16位汇编的目标文件(obj格式)链接生成二进制文件,可用于实模式汇编多文件编译

mingw:用到了其中的gcc/g++/ld/objdump/mingw32-make,将gcc/g++将C/C++代码生成.o文件,ld将其nasm生成的.o链接生成二进制文件,objdump输出二进制文件map信息,mingw32-make可以重命名为make用于自动构建

bochs:可单步调试(汇编)操作系统的虚拟机

可选:

运行虚拟机:VirtualBox; Hyper-V

编辑器:notepad++ + 二进制插件; VSCODE; VS2022。二进制操作还可以用WinHex

git:版本管理,代码托管到gitee

可能遇到的问题:

bochs:启动虚拟机依赖配置文件(默认名称bochsrc.bxrc)、虚拟硬盘(.vhd),还需要不存在.vhd.lock文件(如果系统异常退出需要手动删除)。虚拟硬盘可使用VirtualBox或者Hyper-V创建。似乎手动创建一个二进制文件,往里面随便塞数据就行,未经验证。

git/gitee:gitee需要有账号/登录才能下载,但胜在网络稳定。x86_asm仓我分成了4个分支,可以选择对应分支下载/clone

二、现状

分为4个分支,master(develop的稳定版本)、develop(开发分支,不稳定)、br_320_200(基本图形显示模式)、br_realmode(基本字符显示模式)

br_realmode:只有"Label Offset:2345D"是我代码的输出

br_320_200:图形显示模式,VGA基本显示模式,分辨率320x200

master:VESA高分辨率显示模式,800x600,段属性和写入位置没解耦,需要手动更改写入硬盘的位置以及从硬盘读入的位置

develop:以及将段属性和写入位置解耦,测试将rdata填充至4个扇区


平台注册入口