实验五 编写调试具有多个段的程序
实验一 将下面的程序编译,连接,用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
实验六
总结:
汇编语言还是多敲敲多运行,才能熟能生巧,不然会很晕。
课上的内容应该及时巩固复习,不然容易造成遗忘。