实验5
实验5,我来了,冲鸭!
1.
源码如下:
进行编译:
用反汇编指令查看返回之前的地址;
查看data段中的数据正是我们之前在段中定义数据,小端法排放;
ss
即程序返回前,cs=076c,ss=076b,ds=076a;
可以看出:若程序加载后,code段的段地址为X的话,那data段的段地址就为:X-2;stack段的为:X-1;
2.
源代码如下:
同样的操作:
查看data中的数据:
即data段中的数据是0123h,0456h;
cs=076c,ss=076b,ds=076a;
若code段的短地址为X,data段的段地址为X-2,,stack段的段地址为X-1;
如果段中的数据占N个字节,则程序加载后,该段实际占有的空间为
(N/16+1)*16 (若N不为16倍数时)
16N(若N为16倍数时)
3.
源代码如下:
相同的操作:
即data段中的数据为0123h,0456h;
cs=076a,ss=076e,ds=076d;
若code的段地址为X,data段的段地址为X+3,stack段的段地址为:X+4;
4.将end start中的start去掉后,都可以执行的吧,我3个程序都删了试了,都和之前没什么差别,因为
也就code segment段中有代码吧,其他除了这个就没其他的代码段了,没有影响。
5.
6.
emmmm。。