实验五

Posted rowan-atkionson

tags:

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

一、实验目的

1. 理解和掌握将数据、代码、栈放入不同段的程序的编写和调试 2. 理解具有多个段的汇编源程序对应的目标程序执行时,内存分配方式

 

二、实验准备

1. 结合第6章教材和课件,复习第6章内容 2. 复习第3章「栈」的知识

 

三、实验内容

教材133实验 5 ps: 1. 实验5相关提示见本文档最后一部分「附:实验5提示&说明」 2. 为提高实验效率,我已将实验 5 的程序框架准备好,可以从课程公邮→文件中心→ 实验文件夹,下载实验5程序框架。

 

实验任务(1)

技术分享图片

技术分享图片

技术分享图片

在程序编译、连接完成之后,依次使用R命令,U命令,G命令,D命令进行调试

技术分享图片

1.       CPU执行程序,程序返回前,data段中的数据为:0123H,  0456H,  0789H,  0abcH,  0defH,  0fedH,  0cbaH,  0987H

2.       CPU执行程序,程序返回前,cs=076Css=076Bds=076A

3.       程序加载后,code段的段地址为X,则data段的段地址为: X-2stack段的段地址为: X-1

实验任务(2)

技术分享图片

技术分享图片

技术分享图片

1.       CPU执行程序,程序返回前,data段中的数据为:0123H,  0456H

2.       CPU执行程序,程序返回前,cs=076C  ,ss=076B  ,ds=076A 

3.       设程序加载后,code段的段地址为X ,则data段的段地址为:X-2stack段的段地址为:X-1

4.       对于如下定义的段如果段中的数据占N个字节则程序加载后,该段实际占有的空间为: (N/16+1)*16

实验任务(3)

技术分享图片

技术分享图片

技术分享图片

1.       CPU执行程序,程序返回前,data段中的数据为:0123h,  0456h

2.       CPU执行程序,程序返回前,cs=076Ass=076Eds=076D

程序加载后,code段的段地址为X,则data段的段地址为:X+3stack段的段地址为:X+4

实验任务(4)

 实验(3)可以正确执行,因为去掉start之后,编译器便会按顺序(从上到下)执行程序。

实验任务(5)

技术分享图片

输入代码后,编译,连接成功

技术分享图片

 

技术分享图片

技术分享图片

实现了数据的相加

实验任务(6)

技术分享图片

技术分享图片

技术分享图片

技术分享图片

完成数据的逆序存储

总结体会

通过使用段,能够更加清晰的解决问题。

 

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

2018-2019-2 20175306实验五《网络编程与安全》实验报告

计算机系统 实验五 Cache实验

2017-2018-2 20165209 实验五《网络编程与安全》实验报告

区块链技术与应用实验报告(实验五)

区块链技术与应用实验报告(实验五)

区块链技术与应用实验报告(实验五)