实验五

1编辑,编译,连接。用debug加载,跟踪

u命令查看,用g命令将程序运行到0076c:001D处即程序返回前:

 

得知cs=076c,ss=076b,ds=076a(2)

d命令查看数据段的内部内容,得知data数据未变还是0123h,0456h。。。。0987h。(1)

程序加载后code段地址为X,则data段地址为X-2,stack段地址为X-1。(3)

 

2、同1直接跳到mov ax 4c00h代码处即程序返回前:

 

(1)数据不变还是0123h,0456h

(2)cs=076c,ss=076b,ds=076a。

(3)若code段段地址为X,则data段段地址为X-2,stack段段地址X-1。

(4)实际占有16*((N+15)/16)((N+15)/16取整)

3、同上

 

(1)数据不变还是0123h,0456h

(2)cs=076A,ss=076e,ds=076d。

(3)若code段段地址为X,则data段段地址为X+3,stack段段地址X+4。

4、前两个不能正常运行,因为程序入口默认为整个代码的第一行;第三个可以。

5、

 

实现了加法运算

6

可知b段的地址076c

push操作前后b段的内容。

总结:知道了没有标号(可写为“start”或其他任意字母)时程序入口默认为整个代码的第一行,,各个段的名称只是代号,一段内存空间的“别称”。复习了loop,【bx】的联合应用。

posted @ 2018-11-26 20:35  不吃耗子的猫  阅读(116)  评论(0)    收藏  举报