一、实验目的
1. 理解和掌握将数据、代码、栈放入不同段的程序的编写和调试2. 理解具有多个段的汇编源程序对应的目标程序执行时,内存分配方式二、实验准备1. 结合第 6 章教材和课件,复习第 6 章内容2. 复习第 3 章「栈」的知识三、实验内容教材 133 实验 5ps:1. 实验 5 相关提示见本文档最后一部分 「附:实验 5 提示&说明」 」2. 为提高实验效率,我已将实验 5 的程序框架准备好,可以从课程公邮→文件中心→实验文件夹,下载实验 5 程序框架。四、实验结论实验任务(1)~(4),直接在教材上填写实验后通过运行、调试观察到的结果,以及由此得到的结论,以拍照或直接在博客中录入方式,给出填写的结论。对结论得出的过程及调试过程的检查,采用随机抽点现场操作演示并回答的方式检查。实验任务(5),要求在博客中给出如下内容:1.过程:
debug:
结果:
可得data:23 01 56 89 07 bc 0a ef 0d ed 0f ba 0c 87 09
cs=076c, ss=076b,ds=076a
data段地址: x-2 stack段地址: x-1
2.主要步骤与实验一相同debug过程:
结果:
data:23 01 56 04
cs=076c ss=076b ds=076a
data段段地址:x-2,stack段段地址:x-1
实际占有的空间为:((N+15)/16)*16
3.
过程:(可能是我操作不当?g命令老崩溃)
结果:
data:23 01 56 04
cs=076a ss=076e ds=076d
data段段地址:x+3,stack段段地址:x+4
4.
只有3能正确执行。因为1,2前端都是数据段,不指明开始段时会被当作代码段。
5.
源码:
过程:
前后对比,成功相加。
6.
源码:
结果:
五、总结与体会
这次实验更多,更复杂,我遇到的问题比以往都多,也学习了不少。