首页 > 其他 > 详细

实验五

时间:2018-12-03 23:26:35      阅读:191      评论:0      收藏:0      [点我收藏+]

一、实验目的

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)

技术分享图片

技术分享图片

技术分享图片

技术分享图片

完成数据的逆序存储

总结体会

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

 

实验五

原文:https://www.cnblogs.com/Rowan-Atkionson/p/10061626.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!