实验报告五
实验内容:
1、用masm集成开发环境对源代码进行编写

对其进行调试:

CPU执行程序,程序返回前,data段中数据不变

CPU执行程序,程序返回前,cs=0072、ss=0071、ds=0070。
根据上面规律可知书上空依次填为 x-2,x-1。
2、将程序进行编译链接

进行调试得

所以程序返回前,data段中数据为 0123h,0456h
程序返回前,cs=0772,ss=0771,ds=0770
data段地址为x-2,stack段的段地址为x-1
是N/16么?
3、将源程序编好

调试为:

data段中的数据不发生变化
程序返回前,cs=0770,ss=0774,ds=0773
依据上述规律,可得,code段地址为x,data段的段地址为x+3,stack的段地址为x+4。
4、经调试发现只有3题中的程序可以执行

具体原因,不清楚,可能是与start的位置有关。
5、在masm集成开发环境上将其编译,注意到a,b,c用名不规范与代码段中某些专有函数名词产生冲突,所以将其重命名

相加前,逻辑段c的8个字节为

执行完程序后,c的8个字节为

6、思路是将a段的数据入栈,然后前9个数据弹出不保存,后8个数据弹栈将其保存,但是具体如何操作还不太懂。
实验总结:
本次实验逐步了解了本章的知识,对于代码段可以多个段编写有所领悟,原来这样可以增加其存储空间。有些不可思议。同时发现栈的知识在汇编语言中用处很大,所以应再加强这方面的学习。

浙公网安备 33010602011771号