汇编实验五
1.任务一
.
(1)cpu执行程序,程序返回前,data段中的数据如上图所示,保持不变;
(2)cpu执行程序,程序返回前,cs=0772h,ss=0771h,ds=0770h;
(3)设程序加载后,code段的地址为x,则data段的段地址为x-2h,stack段的段地址为x-1h;
2.任务二
(1)cpu执行程序,程序返回前,data段中的数据为0123h和0456h,保持不变;
(2)cpu执行程序,程序返回前,cs=0772h,ss=0771h,ds=0770h;
(3)设程序加载后,code段的段地址为x,则data段的段地址为x-2h,stack段的段地址为x-1h;
(4)对于如下定义的段:
name segment
name ends
如果段中的数据占n个字节,则程序加载后,该段实际占有的空间为?
3.任务三
(1)cpu执行程序,程序返回前,data段中的数据为0123h和0456h;
(2)cpu执行程序,程序返回前,cs=0770h,ss=0774h,ds=0773h;
(3)设程序加载后,code段的段地址为x,则data段的段地址为x+3h,stack段的段地址为x+4h;
4.任务四
如果将(1)(2)(3)的最后一条伪指令“end start”改为"end”(也就是说,不指名程序的入口),则哪个程序依然可以运行?
(1)
不可以正确执行
(2)
不可以正确执行
(3)
可以正确执行;
5.任务五
6.任务六
push操作之后,变为倒序;
7.实验总结与分析
对于任务四的结果不是很理解,只是全部操作一遍之后发现(1)(2)都不可以正确操作,求大神解答;
还有任务三的第四个小问也不是很理解,百度之后有各种各样的答案,解析不是很懂;
数据,代码和栈可以放入不同的段进行操作,也是有了一点了解;