回 帖 发 新 帖 刷新版面

主题:一个菜鸟的问题

将下面的程序编译连接,用Debug加载,跟踪,然后回答问题:

assume cs:code,ds:data,ss:stack
data segment
   dw 0123H,0456H,0789H,0abcH,0defH,0cbaH,0987H
data ends
stack segment
   dw 0,0,0,0,0,0,0,0
stack ends
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
end start
1.CPU执行程序,程序返回前,data段中的数据为多少?
2.CPU执行程序,程序返回前,cs=_____ 、ss=_______、ds=_______。
3.设程序加载后,code段的段地址为X,则data段的段地址为_______,stack段的段地址为 ______。
第一个问题还好就是0123H,0456H,0789H,0abcH,0defH,0cbaH,0987H这些对吧。
可是后面的两个我就明白了。

回复列表 (共1个回复)

沙发

1.CPU执行程序,程序返回前,data段中的数据为多少?
2.CPU执行程序,程序返回前,[u]cs=1981h、ss=197fh、ds=196f[/u]。(这个看机器实际情况,关键要理解第三题与第二题的联系)
3.设程序加载后,code段的段地址为X,则data段的段地址为  x-32(十进制),stack段的段地址为  x-16(十进制)。

我来回复

您尚未登录,请登录后再回复。点此登录或注册