一. 环境搭建
首先要搭建汇编环境,下载dosbox和masm文件,注意文件里要至少包含masm.exe, link.exe, debug.exe, exe2bin.exe这四个可执行文件,在某盘里创建文件夹dos,将masm文件夹放在里面,还可创建另一个文件夹来存放汇编代码文件,安装dosbox,将masm文件路径挂载到dosbox驱动器下,具体操作如下:
点开dosboxan安装文件夹里的图中文件,在文件末尾加入如下代码
mount c c:\dos ; 挂载驱动器
path=%path%; \masm ; 添加路径
c: ; 转到e盘
cd \asm ; 进入asm文件夹
运行dosbox,界面如下
二. 调试
总的来说调试有以下几类
R命令查看、改变CPU寄存器的内容;
D命令查看内存中的内容;
E命令改写内存中的内容;
U命令将内存中的机器指令翻译成汇编指令;
T命令执行一条机器指令;
G命令跳转到偏移地址;
P命令结束循环或者是int 21H时是退出程序;
A命令是以汇编指令的格式在内存中写入一条机器指令。
以以下程序为例
例,将内存 ffff:0 ~ ffff:b 段元中的数据拷贝到 0:400 ~ 0:40b 单元中
ASSUME CS:CODE
CODE SEGMENT
MOV BX,0
MOV CX,12
S:
MOV AX,0FFFFH
MOV DS,AX
MOV DL,[BX]
MOV AX,0040H
MOV DS,AX
MOV [BX],DL
INC BX
LOOP S
MOV AX,4CH
INT 21H
CODE ENDS
END
在dosbox里依次输入masm test.asm,回车
link test1.obj
然后debug test1.exe调试
1.输入-D [地址] 或-D [范围]查看内存单元的内容
如下图就可以看到ds段寄存器中的值
2.用-E 地址 内容表修改寄存器中的内容
3.用-R显示CPU内部所有寄存器的内容和标志位状态
-t可单步运行指令
4.可用-G [=地址1][地址2[地址3。。。 ]]设置断点运行程序,其中地址1规定了运行起始地址,后面若干地址为断点地址
5.-A [地址]
从指定的地址开始允许输入汇编语句,把它们汇编成机器代码相继存放在从指定地址开始的存储器中。