实验五
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=076C ,ss=076B ,ds=076A
3. 程序加载后,code段的段地址为X,则data段的段地址为: X-2 ,stack段的段地址为: X-1
实验任务(2)
1. CPU执行程序,程序返回前,data段中的数据为:0123H, 0456H
2. CPU执行程序,程序返回前,cs=076C ,ss=076B ,ds=076A
3. 设程序加载后,code段的段地址为X ,则data段的段地址为:X-2 ,stack段的段地址为:X-1
4. 对于如下定义的段,如果段中的数据占N个字节则程序加载后,该段实际占有的空间为: (N/16+1)*16
实验任务(3)
1. CPU执行程序,程序返回前,data段中的数据为:0123h, 0456h
2. CPU执行程序,程序返回前,cs=076A ,ss=076E ,ds=076D
程序加载后,code段的段地址为X,则data段的段地址为:X+3 ,stack段的段地址为:X+4
实验任务(4)
实验(3)可以正确执行,因为去掉start之后,编译器便会按顺序(从上到下)执行程序。
实验任务(5)
输入代码后,编译,连接成功
实现了数据的相加
实验任务(6)
完成数据的逆序存储
总结体会
通过使用段,能够更加清晰的解决问题。
以上是关于实验五的主要内容,如果未能解决你的问题,请参考以下文章
2018-2019-2 20175306实验五《网络编程与安全》实验报告