实验三

Posted daiyang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实验三相关的知识,希望对你有一定的参考价值。

练习1:

一:用记事本编写文件1.asm

技术分享图片

二:对文件1.asm 进行汇编,连接,运行,调试

技术分享图片

发现运行出来的结果是36。

三:将 line4和line9中dl 的值分别修改为 0~9 中任何一个数字,重新汇编, 连接,运行,观察结果的变化。

技术分享图片

此处改的数值分别为1,1

技术分享图片

象上面一样进行汇编, 连接,运行,发现结果确实为11。

四:用debug对生成的可执行文件 1.exe 进行调试

1.使用r命令查看寄存器中cs和ds的值为多少,它们之间是否满足关系cs=ds+10H? 

技术分享图片

发现cs=15D9,ds=19C9,满足cs=ds+10H。

2.PSP(程序段前缀)的头两个字节是CD 20, 用debug查看PSP的内容,验证是否如此。

技术分享图片

发现确实为CD 20。

3.使用u命令对1.exe进行反汇编,观察反汇编得到的源代码。

技术分享图片

4.使用 t 命令和 p 命令(遇到 int 命令时,用 p 命令)单步调试,观察结果

技术分享图片

技术分享图片

发现在-p后面出现了3,6,即之前运行程序所出现的结果。

 

练习2:

一:按照实验要求编写源代码2.asm。

技术分享图片

二:对源程序2.asm进行汇编,连接,运行,调试,观察程序运行结果,验证是否在屏幕左上方出现红色的数值36

编译过程与上面一致,不截图显示了

技术分享图片

清屏之后发现确实显示了红色的36。

三:将源代码中line7的0433h→0432h, line10 的 0436h→0439h, 然后重新汇编、连接,得到可执行文件2.exe。使用cls命令清屏后,再次观察程序运行结果

技术分享图片

技术分享图片

发现数字变成了红色的29。

四:将源代码中line7的0433h→0333h, line10 的 0436h→0336h, 然后重新汇编、连接,得到可执行文件2.exe。使用 cls 命令清 屏后,再次观察程序运行结果

技术分享图片

技术分享图片

发现数字变成了蓝绿色的36。

 

实验总结与体会:

通过这两个实验的实践过程,我学会了如何编写,编译,连接一个程序以及使用dosbox运行这个程序,并且我学会了使用debug逐步调试程序中的每一步。还有,在mov中不同的数值代表着不同的颜色和数字,这在以后的学习中我还要深入研究。

 

以上是关于实验三的主要内容,如果未能解决你的问题,请参考以下文章

实验六报告

实验三

实验三

实验三

实验7

[汇编语言]实验三:栈和栈段