(1)生成可执行文件t1.exe
先使用记事本写下题目中的代码段,将文件拓展名修改为.asm存入与masm.exe的同一目录下
打开DOSBOX进入模拟C盘,打开目录下的masm5.0编译器,文件名为masm.exe,紧接着输入需要被编译的源文件名称,[.ASM]表示如果文件名以.asm为拓展名,如下t1.asm则可以直接输入t1,若文件名不以.asm为拓展名,则需要输入全名。
除此之外,如果文件不在当前目录下,也需要输入全名。
紧接着需要输入输出结果的文件名,如果按enter键则默认与源文件名称一致
后面两个输入都为中间结果的文件名,可以enter不生成。
最后在当前目录下,生成t1.OBJ文件
打开Link连接器,文件名为link.exe,同上,输入上面生成的以.OBJ为拓展名的文件,最后生成t1.exe的可执行文件。
也可以使用简化的方式进行编译和连接。
(2)用Debug跟踪t1.exe的执行过程
使用Debug将程序从t1.exe载入内存,使用r指令查看寄存器内容,u指令查看汇编指令,
可以发现,cx中存放的是程序的长度22个字节,即0016H。DS中存放程序所在的内存区的段地址,即DS:0。程序的物理地址为CS:IP,相差256个字节,如下CS=DS+10H:0
使用T指令逐步执行,查看寄存器内容,最后执行int 21时需要使用P指令
(3)查看PSP的内容
使用D命令查看