实验5
1。
.
用r指令查看stack段地址076B,由于stack内是8字即16个字节。所以data区短地址是076A,刚好数据区也是16个字节,用d 076A:0 F查看数据元素。
用u指令反汇编代码,得到代码段最后是076A:001D。用g命令执行该代码。
可以得到CS=076C,SS=076B,DS=076A。假设CODE段的段地址为X,则DATA段的段地址为 X-2 ,STACK段的段地址为 X-1 。
2.
3.
数据data区没有改变,原数据详细地代码请展开练习3 下面的代码。
假设CODE段的段地址为X,则DATA段的段地址为 X+3 ,STACK段的段地址为 X+4 。
4.
将1、2、3中最后最后一条伪指令“end start”改为“end”
实验证明,只有第三个程序,是能够正常运行。
如果不指明入口位置,则程序从所分配的空间开始执行。只有第三个是以代码段开始,则不会将其他数据段当成代码段执行。
5.
6.
总结感受
让逻辑段 a 作为数据段(和 ds 关联起来),c 作为附加段(和 es 关联起来);将逻辑段 a 的数据→复制到逻辑段 c(可借助 mov 和 loop 实现)让逻辑段 b 作为数据段(和 ds 关联起来),c 作为附加段(和 es 关联起来);将逻辑段 b 的数据加到逻辑段 c(可借助 add 和 loop 实现)
章主要是综合运用前面的内容,定义栈,使用段地址加偏移地址,进行访问,存储