这里介绍两种环境搭建方法,一种是DOSBOX模拟器,一种是VMware虚拟机跑一个DOS系统,其中虚拟机跑DOS系统是学习这篇文章的。两种各有优势:
- DOSBOX模拟器打开速度快,windows下文本编辑方便;
- 虚拟机跑DOS系统可以根据需要添加硬件,具上述博客描述(还没有学到后面,没有亲测)可以实现王爽那本书里面所有的案例。
- 虚拟机中DOS装的是TR而不是DEBUG(人家也装了,可以用),TR用起来比DEBUG好用,首先寄存器状态一直显示在上端就很人性化,中间显示一部分内存,下面显示指令,界面很友好。
共同点是都是搭建一个DOS系统,然后在DOS系统下编辑、编译(MASM)、链接(LINK)、跟踪执行(DEBUG/TR)
一、DOSBOX模拟器环境搭建
1、用到的所有软件打包放在这里,整理好亲测可以用的,如果没有积分从网上搜一下,模拟器、MASM、LINK和DEBUG都是可以下到的。
2、首先安装模拟器,安装完成后打开DOSBOX程序,根据自己红框内的目录找到对应配置文件。
3、修改配置文件
①在某个目录下创建一个自己专门学习汇编的文件夹,我这里用的是网上一致的d:/debug目录。
②修改dosbox-0.74.conf文件(步骤2中红框中的文件),在文末添加:
#这个你自己创建的哪个目录就写哪个目录,意思是把系统中的这个目录挂在到DOS系统的C盘
mount c: d:/Debug
#这个可加可不加,如果不加的话每次转到这个目录时需要手动输入c:\;加上这个后打开自动跳转到这个目录
C:\
4、将压缩包里DEBUG.EXE、MASM.exe和LINK.exe拷贝到d:/Debug这个目录里
5、本地编写.asm文件,直接放到d:/debug目录下,然后在dosbox里面编译、链接、debug(首先进入到C:\目录,因为你win10的debug目录挂在在了dos系统下的C盘)
①编译
masm 1.asm
红框里可以不输入,直接回车,名字会和你源文件的名字相同,编译时语句加分好可以去掉这些中间过程, masm 1.asm ; 。
②链接
link 1.obj
红框同上,可以不写直接回车。
③追踪执行
debug 1.exe
二、DEBUG中的一些常用命令
1、R :查看各个寄存器的设置情况:
2、U :查看从CS:IP开始的指令
3、T 单步执行CS:IP处的代码(注意:若是执行int 21这句,需要用P)
4、Q :退出debug返回命令行
基本的就介绍这么多,需要更多请自行百度。
三、VMware搭建DOS
具体安装方式和需要的DOS镜像在原文中有,支持原创,请从原作者处下载,传送门:博客地址 ,下载地址。
安装和基本使用有,但是一上手,我并不知道怎么使用,这里记录下我的学习过程。
1、进入后可以看到
这是进入dos系统后的界面,常用的一些dos命令如下(有一丢丢和linux像):
cd abc #进入abc目录
cd .. #返回上一个目录
cd \ #回根目录
dir #显示当前目录下的文件和目录
md abc #创建名为abc的目录
rd abc #删除名为abc的目录
del abc #删除名为abc的文件
vim abc.asm #这里装了vim,可以直接用
2、vim使用的一个小技巧
关于vim的命令这里不再赘述,这里更改一个vim的配置,就是tab键缩进4个字符,之前是8个,看着很别扭。
先进到这个目录:
任意位置添加:
也可以根据自己的需要在这个文件里改其他配置,具体怎么改可以百度更改vim配置。
3、编译、链接、追踪执行
这个dos系统中,masm、link、tr都已经添加到了环境中,所以在任意目录下都可以执行这三个程序,所以可以创建自己一个工作目录。
我在这个目录里写了一个程序叫test.asm,下面开始编译。
①编译、链接
②追踪执行
tr test.exe
4、TR中常用的命令
do demo1.txt等三个文档已经有较详细的基本使用指南(需要进到C:\TR目录下才能按原博客执行),实在不够用可以在TR命令行敲击" ?"来查看,这里只是记录一下简单常用的。
①R:更改某个寄存器的值。
R ax 87 #更改ax寄存器为0087h
②WD:改变显示内存的行数。
WD 6 #默认内存行数为2行,这个命令改成了6行
③A:从某个地址开始输入代码,连续两次回车退出。
A 100 #回车后可以开始敲入代码,从CS:[100]处开始
④T:执行CS:IP处的代码一次。