实验任务一:将下面的程序保存为t1.asm文件,将其生成可执行文件t1.exe。
用记事本编辑代码,保存为t1.asm:
编译、连接,生成可执行文件:
运行程序:
得到输出结果为06
下面研究修改line4和line9中寄存器dl的值,对结果产生的影响。
为简化编译、连接的过程,决定采用批处理文件的形式来完成这个过程:
生成一个名为m_l.bat的批处理文件。
修改:line4的3—>4,line9的6—>8:
编译、连接、执行:
得到输出结果08
用debug对t1.exe调试:
用r命令查看各寄存器的值:
发现cs的值为076A,ds的值为075A,满足(cs)=(ds)+10H
查看psp的内容:
可以看到,psp的头两个字节的确是CD 20
使用u命令反汇编,观察源代码:
单步调试:
实验任务二:将下面的程序保存为t2.asm文件,将其生成可执行文件t2.exe
用记事本编辑代码,保存为t2.asm:
编译、连接,生成可执行文件:
运行结果:在屏幕的左上方出现红色数值36
下面研究修改line7和line10的部分数据对结果产生的影响
①line4的 0433h—>0432h, line10的 0436h—>0439h
编译、连接、运行:
运行结果:在屏幕的左上方出现红色数值29
①line4的 0433h—>0333h, line10的 0436h—>0336h
编译、连接、运行:
运行结果:在屏幕的左上方出现蓝色数值36
从以上3组结果可以看出,line7控制第一个字符的输出,line10控制第二个字符的输出。二者[bx]的高字节决定了颜色,低字节控制显示的字符。