实验一:
1:代码:
2:编译连接运行
(1)CPU执行程序,程序返回前,data段中的数据为多少?
23 01 56 04 89 07 BC 0A EF 0D ED 0F BA 0C 87 09
(2)CPU执行程序,程序返回前,cs=15fb、ss=15f9、ds=15e9。
(3)设程序加载后,code段的段地址为X,则data段的段地址为X-2,stack段的段地址为X-1。
实验2:
1,代码:
2,编译连接运行:
(1)CPU执行程序,程序返回前,data段中的数据为多少?
23 01 56 04 00 00 00 00 00 00 00 00 00 00 00 00
(2)CPU执行程序,程序返回前,cs=15fb、ss=15f9、ds=15e9。
(3)设程序加载后,code段的段地址为X,则data段的段地址为X-2,stack段的段地址为X-1。
实验3:
1,代码:
2,编译连接运行:
(1)CPU执行程序,程序返回前,data段中的数据为多少?
23 01 56 04 00 00 00 00 00 00 00 00 00 00 00 00
(2)CPU执行程序,程序返回前,cs=15f9、ss=15f9、ds=15e9。
(3)设程序加载后,code段的段地址为X,则data段的段地址为X+3,stack段的段地址为X+4。
实验4:
1,
2,
3,
对比发现,1,2修改后不能正常运行,3可以,因为程序从所分配的空间开始执行,前2个是数据段,第3条是代码段在前,因此只有3正确执行。
实验5:
1,代码:
实验6
1,代码:
2,编译连接运行:
总结:上周老师课上所讲的关于考试的东西,让我开始紧张起来,于是又重新温习了一遍,在做实验的过程中,了解了关于多个段的程序的编写与运行,尤其是实验4,程序从所分配的空间开始执行