最近在看汇编语言,不过之前没注意书中用的编译器是 masm,Linux 下的 nasm 或 gas 都没得搞,很多东西都不兼容。总不能虚拟机中搞吧?网上搜了搜,发现可以用 dosbox 模拟 dos 环境。折腾了一番成功了,最终有效过程如下
安装 masm
下载 masm,解压放到 ~/kernel 目录。这个目录下放有汇编源程序。
安装 dosbox
sudo apt install dosbox
配置 dosbox
通过启动器启动一次 dosbox,然后关闭,这样会生成 ~/.dosbox/dosbox-0.74.conf
打开 ~/.dosbox/dosbox-0.74.conf,在最后添加如下内容
mount c ~/kernel
path=%path%;\masm
c:
这是 dosbox 启动后自动执行的命令。意思是,将 ~/Test/kernel 模拟为 C 盘,将 C 盘根目录下的 \masm 添加到 PATH 环境变量中,切换当前工作目录到 C 盘。
配置后 dosbox 的启动画面
编译汇编源程序
打开 dosbox,执行如下命令
masm my.asm;
link my my.obj;
这是脚本批处理模式,如果后面不加;,则进入交互模式
执行可执行文件
my