1. 软件准备
码云仓库地址:gitee.com/yanghuax/DO… 或
Github 仓库地址:github.com/xDarkLemon/…
2. 安装和测试
2.1 安装
双击 DOSBox0.74-3-win32-installer.exe 安装 DosBox,如果为 64 位系统,则将安装根目录设置为 C:\Program Files(x86)。 安装完成后,新建工作区目录如 D:\Dos,并新建子目录 ASM 用于存放汇编代码、子目录 MASM 用于存放上述下载的四个可执行文件。
D:\Dos
├─ ASM
└─ MASM
├─ LINK.EXE
├─ MASM.EXE
├─ debug.exe
└─ exe2bin.exe
2.2 目录挂载(可选)
为了方便后续操作,可以考虑将 DosBox 目录映射为本地目录。在 DosBox 的安装目录下双击 DOSBox 0.74-3 Options.bat 打开配置文件,在文件的最后部分加上挂载内容:
[autoexec]
# Lines in this section will be run at startup.
# You can put your MOUNT lines here.
mount d d:\dos # 将 DosBox 的 d 目录映射为本地的 d:\dos 目录
d: # 切换到 d 目录,即本地的 d:\dos 目录
2.3 代码测试
在 ASM 目录下新建 demo.asm 文件,内容如下:
assume cs:codesg
codesg segment
start:
mov ax,0123h ;将0123H送入寄存器AX
mov bx,0456h ;将0456H送入寄存器BX
add ax,bx ;(AX)=(AX)+(BX)
add ax,ax ;(AX)=(AX)+(AX)
mov ax,4c00h
int 21h ;程序返回指令
codesg ends
end start
通过编译和链接将汇编源代码转换为可执行文件。基于可执行文件 MASM.EXE 编译源文件,指令格式为:
masm d:\asm\demo.asm;
如果上述指令不带分号则系统要求我们依次输入目标文件名、是否生成列表文件和交叉文件等编译过程的中间结果,加上分号后使用默认设置。
link demo;
DEMO.EXE
3. 代码调试
MASM 目录下的 debug.exe 用于汇编代码的调试,执行以下命令即可进入调试模式。
debug demo.exe;
3.1 u 命令
汇编源代码以机器指令的形式执行,u 命令将内存中的机器指令翻译成汇编代码。
u 命令可以查看指定内存单元的机器码和汇编代码,格式为:
u 段地址:偏移地址
3.2 r 命令
r 命令用于查看各寄存器的内容。
3.3 d 命令
d 命令用于查看内存中的内容。
同样,d 命令可以查看指定内存单元的内容,格式为:
d 段地址:偏移地址
3.4 t 命令
t 命令用于执行一条机器指令。
上述代码第一条语句的功能是将0123H送入寄存器AX,t 命令执行后,红色部分标出当前状态下寄存器 AX 的内容。蓝色部分表示下一次即将执行的指令,对应于 CS:IP 确定的内存单元的内容。
最后,使用 p 命令运行 int21 指令,程序正常退出。
3.5 g 命令
g 命令用于运行指定内存单元处的指令,格式为:
g 段地址:偏移地址
4. 总结
-
本文介绍了在 Windows10 下 DosBox 汇编环境的搭建和 debug 汇编代码的常用命令
-
参考:汇编语言/王爽著.——北京:清华大学出版社,2003