作者: | 来源:互联网 | 2023-07-15 18:52
本文由编程笔记#小编为大家整理,主要介绍了实验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)题则是代码段先被加载进内存,因而可以被正确执行。
实验代码
实验结果
实验代码
实验结果
总结:觉得这次的实验前几个很简单,但是寻址掌握的不好。’