当前位置: 代码迷 >> 汇编语言 >> 栈的有关问题。求教
  详细解决方案

栈的有关问题。求教

热度:4016   发布时间:2013-02-26 00:00:00.0
栈的问题。求教
王爽汇编语言习题检测6.1(2)
下面程序实现依次用内存0:0-0:15单元中的内容改写程序中的数据,数据的传送用栈看来进行。栈空间设置在程序内,完成程序:
assume cs:codesg
codesg segment
    dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h
    dw 0,0,0,0,0
start: mov ax,cs
       mov ss,ax
       mov sp,1ah
       mov ax,0
       mov ds,ax
       mov bx,0
       mov cx,8
    s: push [bx]
       pop cs:[bx]
       add bx,2

       loop s

       mov ax,4c00h
       int 21h

codesg ends
end start


我想问下dw,0,0,0,0,0什么作用,为什么要10个字节?如果只是栈传递数据的话,2个字节不是就够了吗?
而且刚开始我没写pop cs:[bx],这句话的时候,程序没运行完就跳出来了。后来我每一步T都看下D cs:00 1f的数据,发现栈指针指向内存单元的前5个字单元的数据会被改变。好像分别是0000,0000,IP的值,CS的值,6E12(这个不知道是什么)。
有没有高手帮我解释下。谢谢。
------解决方案--------------------------------------------------------
发现栈指针指向内存单元的前5个字单元的数据会被改变
DEBUG会用栈来保存信息
------解决方案--------------------------------------------------------
s: push [bx]    这句话从地址[0]取值在放入stack, 有问题,改掉看看呢
  相关解决方案