实验5

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

代码

结果如下

CPU执行程序,程序返回前,data段中的数据为:

   0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h

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

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

实验代码

结果如下

CPU执行程序,程序返回前,data段中的数据为:

    0123h,0456h

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

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

结果如下

CPU执行程序,程序返回前,data段中的数据为:

    0123h,0456h

CPU执行程序,程序返回前,cs= 076A ,ss= 076E ,ds= 076D  

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

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

实验代码

实验结果

实验代码

实验结果

 

总结:觉得这次的实验前几个很简单,但是寻址掌握的不好。’

 

posted on 2018-11-30 22:27  李非凡  阅读(104)  评论(3编辑  收藏  举报