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】的联合应用。