汇编网首页登录博客注册
ryan1779的学习博客
博客首页博客互动【做检测题】论坛求助

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
学习动态
最新留言
文章收藏
友情链接

[2009-07-14 18:02] 实验5.(3),(4)

code segment

start:mov ax,stack
      mov ss,ax
      mov sp,16

      mov ax,data
      mov ds,ax

      push ds:[0]
      push ds:[2]
      pop ds:[2]
      pop ds:[0]

      mov ax,4c00h
      int 21h

code ends

data segment
   dw 0123h,0456h
data ends

stack segment
   dw 0,0
stack ends

end start
①、CPU执行程序,程序返回前,data段中的数据为多少?
答:不变
②、CPU执行程序,程序返回前,cs=[0b82],ss=[0b86],ds=[0b85]
③、设程序加载后,code段的段地址为X,则data段的段地址为[X+3],
stack段的段地址为[X+4]。

5.4
如果将(1)、(2)、(3)题中的最后一条伪指令“end start”改为“end”(也就是说,不指明程序的入口),则哪个程序仍然可以正确执行?请说明原因。
答:(3)。因为只有3是程序加载后,CS:IP首先指向代码段,而1和2加载后分别指向的是数据段。
评论次数(1)  |  浏览次数(483)  |  类型(汇编作业) |  收藏此文  | 

[  mywiil   发表于  2009-07-15 12:21  ]

没问题。

 
 请输入验证码  (提示:点击验证码输入框,以获取验证码