码迷,mamicode.com
首页 > 其他好文 > 详细

实验五

时间:2018-11-30 20:00:19      阅读:202      评论:0      收藏:0      [点我收藏+]

标签:存储   开始   多少   alt   程序加载   mil   情况   http   执行   

 

1、将下面的程序编译,链接,用debug加载,跟踪,然后回答问题。

技术分享图片

技术分享图片

技术分享图片

  • cpu执行程序,程序返回前,data段中的数据是多少?

技术分享图片

  • cpu执行程序,程序返回前,cs=004h, ss=076bh, ds=076ah
  • 设程序加载后,code段的地址为X,则data段的地址X-2,stack段为X-1

2、将下面的程序编译,链接,用debug加载,跟踪,然后回答问题。

技术分享图片

技术分享图片

技术分享图片

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

3、将下面的程序编译,链接,用debug加载,跟踪,然后回答问题。

技术分享图片

这段代码和上一段对比,就是把data段和stack段放到了最后,看下程序执行返回前(就是int 21h前),相关寄存器的情况:

技术分享图片

这时,CS, SS, DS三个寄存器的位置关系发生了变化,和上面两种情况可以对比一下,分别从程序的角度和内存的角度体会栈段的使用、变化情况。

4、如果将最后一条伪指令“end start”改为“end”,相当于没有指明程序入口,此时程序就会从加载进内存的第一个单元起开始执行。在(1)(2)题中,都是数据先加载进内存,CPU会误把数据也当成指令执行,最终不能保证被正确执行;而(3)题则是代码段先被加载进内存,因而可以被正确执行。

5、程序如下,编写code段中的代码,将a段和b段中的数据依次相加,将结果存到c段中。

 技术分享图片

技术分享图片

6、程序如下,编写code段中的代码,用push指令将a段中的前8个字符型数据,逆序存储到b段中。

技术分享图片

 

代码如下

技术分享图片

结果为

技术分享图片

 

实验五

标签:存储   开始   多少   alt   程序加载   mil   情况   http   执行   

原文地址:https://www.cnblogs.com/DEMON98/p/10045770.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!