第六章实验任务(3、4)
来源:互联网 发布:网络销售哪些是违法的 编辑:程序博客网 时间:2024/05/21 10:29
题目:将下面的程序编译连接,用debug加载、跟踪,然后回答问题。
源代码:
调试过程:
问题1:CPU执行程序,程序返回前,data断的数据为多少?
解答:data段的数据是:144F:0000 23 01 56 04 00 00 00 00-00 00 00 00 00 00 00 00 ,结果保持变。
问题2:CPU执行程序,程序返回前,cs=144ch、ss=1450h、ds=144fh。
问题3:设程序加载后,codesg段的段地址为X,则datasg段的段地址为多少?stacksg段的段地址为多少?
解答:我们可以用命令u查看程序的代码占用了多少内存单元。
从上面的信息可以看出他占用了1Dh的内存空间,但是我们也知道段的使用时不足N/16取整后加1.所以这里的代码段占用了20h的空间。而datasg数据段的大小为16KB。所以可以得出:如果codesg段的段地址为X,则datasg数据段的段地址为X+3h,stacksg段的段地址为X+4h.
问题4:如果将第六章实验(1)、(2)、(3)题中的最后一条伪指令“end start”改为“end”.即不指出程序的入口,则则哪个程序仍然可以正确执行?请说明原因?
解答:就是本片文章能执行。因为如果把end指令后的标号start去掉后,编译器便会顺序执行程序。换句话说:当未给编译器预先的通知,要求其从哪开始执行程序时,编译器就自动以'至上向下'的顺序进行编译执行源程序。
- 第六章实验任务(3、4)
- 第六章的实验任务(1)
- 第六章实验任务(2)
- 第六章实验任务(5)
- 第六章实验任务(6)
- 第六周实验报告(任务4)
- 第六周实验报告(任务3)
- 对第六章实验任务(6)的修正
- 《第六周实验报告任务4》
- 第六周实验报告任务4
- 第六周实验报告任务4
- 《第六周实验报告任务3》
- 第六周实验报告任务3
- 第六周实验报告任务3
- 第六周实验报告(任务1)
- 第六周实验报告(任务2)
- 第六周实验报告(任务5)
- 第六周实验任务一
- 写一个简单的MTK图片管理工具
- 拨云见日---浅谈静态字段与静态构造函数之间的初始化关系以及执行顺序(下)
- C 语 言 设 计 一 个 Windows Socket
- Beej’s网络编程向导
- 090823c语言学习日记(第七章,分支和控制)
- 第六章实验任务(3、4)
- *iter++和(*iter)++的问题
- 一.为学
- Windows Socket简介
- Windows API函数大全(转载)
- winsocket编程实例
- unix下编写socket程序的一般步骤
- 木马编写小技巧
- Winsock开发网络通信程序的经典入门