书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)

 

栈中的数据是逆序存放的

实验总结和体会:

这次实验我学会了怎样编写包含多个段的程序,其中要注意的是在进行入栈操作前要指明栈顶的位置

 

posted on 2018-11-24 13:06  frankbao  阅读(78)  评论(0编辑  收藏  举报