实验五 编写调试具有多个段的程序

实验一  将下面的程序编译,连接,用Debug加载,跟踪,然后回答问题

 

运行程序截图如下:

 

 

总结:CPU执行程序,程序返回前,data段中的数据不变

          CPU执行程序,程序返回前,cs=076C,ss=076B,ds=076A

          设程序加载后,code段的段地址为X,则data段的段地址为X-2,stack段的段地址为X-1.

 

实验二 

 

总结:1.data段中的数据依然不变

          2.cs=076C,ss=076B,ds=076A

          3.code段的段地址为X,data段的段地址为X-2,stack段的段地址为X-1

         4.name segment

           .....

           name ends

          如果段中的数据占N个字节,程序加载后,该段实际占有的空间为(N/16+1)*16.

 

 

实验三

 

总结:

1.data段中的数据不变

2.cs=076A,ss=076E,ds=076D

3.code 段的段地址为X,data段的段地址为X+3,stack段的段地址为X-4

 

 

实验四  (1)和(2)不能,(3)可以正确执行,原因为前者是数据段加载进入内存中,后者是代码段加载入内存中,程序可以正确执行。

 

实验五  

 

经过调试,数据相加前,逻辑段c的8个字节:00 00 00 00 00 00 00 00

执行完加运算之后,逻辑段c的8个字节:02 04 06 08 0A 0C 0E 10

 

实验六

 

 

总结:

汇编语言还是多敲敲多运行,才能熟能生巧,不然会很晕。

课上的内容应该及时巩固复习,不然容易造成遗忘。

 

posted on 2018-11-30 22:39  日央  阅读(194)  评论(0编辑  收藏  举报