《汇编语言》实验三——编程、编译、连接、跟踪

实验任务一:将下面的程序保存为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]的高字节决定了颜色,低字节控制显示的字符。

 

posted @ 2018-11-01 16:43  Kevin234  阅读(1297)  评论(0编辑  收藏  举报