书P133-137
(1)
反汇编得到程序返回前是执行到0019
执行到0019
查看前16个字节的数据
1.data中的数据:23 01 56 04 89 07 bc 0a ef 0d ed 0f ba 0c 87 09
2.cs=076c ss=076b ds=076a
3.data段段地址为X-2,stack段段地址为X-1
(2)
1. 数据为23 01 56 04
2.cs=076c ss=076b ds=076a
3.data段地址为X-2,stack段地址为X-1
4. 该段占有的实际空间为((N+15)/16)*16
因为1个字节到16个字节都会被当做一个字节段,是16个字节,超出1个字节,也会用一个字节段存储它。
(3)
1. 数据为23 01 56 04
2.cs=076a ss=076d ds=076e
3.data段地址为X+3,stack段地址为X+4
(4)
只有(3)可以正确执行,因为3的代码段在开头,如果没有start默认从开头执行。
(5)
(6)
栈中的数据是逆序存放的
实验总结和体会:
这次实验我学会了怎样编写包含多个段的程序,其中要注意的是在进行入栈操作前要指明栈顶的位置