(1)在代码打入之后进行查看,可以知道data的数据为23 01 c8 01,CS为15F5,SS为15F4,DS为15F3,data段地址为X-2,stack段地址为X-1。
(2)可以看到data数据没有变化,CS,SS,DS的数值也没有变化。data段地址为X-1,stack段地址为X-2.最后的空间为(N/16+1)*16,因为,当有一部分超出之后,超出部分依然是一个字节段,所以要+1,之后再乘16就是字节数。
(3)可以看到data的数据不变,CS变为15F3,SS变为15F7,DS变为15F6。data段是X+2,stack段是X+4.
(4)3可以,因为3的代码在开头,不会有判断上的歧义。
(5)这是我的代码段,
之后我进行运行到最后一段代码,之后就可以查看了,该图为查看结果,可以看到00开始和10开始都1到8,然后相加后赋值在20位置处,可以得到要求结果。中间由于我忘记的题目要求要查看运行前的c的结果,所以这里就是直接最后的结果图。
(6)该部分是我的代码的截图
上图是我在进行最后进栈之前部分
这一部分可以看到两者对比的变化,而且需要的前8个数据也以倒叙的方式进栈了。
我个人的总结就是,这一次锻炼了我的对于代码书写熟练度,还有就是再一次复习了栈的操作总体来说,并没有太大的难度,在于对实验的熟练度。