当前位置: 代码迷 >> 汇编语言 >> 王爽编译语言第六章 实验五的疑问
  详细解决方案

王爽编译语言第六章 实验五的疑问

热度:5309   发布时间:2013-02-26 00:00:00.0
王爽汇编语言第六章 实验五的疑问
下面的代码是王爽汇编语言实验五(1)小题的代码,设置了数据段,代码段,栈段
Assembly code
assume cs:code,ds:data,ss:stackdata segment        dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987hdata endsstack segment        dw 0,0101H,0202H,0303H,0404H,0505H,0606H,0707H   ;这里是栈中的初始化内容stack endscode segmentstart:  mov ax,stack  ;stack中保存的是栈段的段地址,对吧?我调试的时候看到的是0B42        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 21hcode endsend start

我把它编译后debug.在debug的时候发现程序刚载入时,用D命令查看栈中的内容是程序代码中的初始内容,
可是一当执行mov ss,ax后栈中的内容就变了呢?
没执行mov ss,ax前我观察的0b42:0段的内容,设置ss的值为0b42后我观察的还是0b42:0 10的内容


------解决方案--------------------------------------------------------
DEBUG需要用栈来保存调试信息的
上面你只要看看就能看出里面的东西就是你正在执行的地址
------解决方案--------------------------------------------------------
探讨

我也发现了,那这样的话,我要用栈 它也要用,那不冲突吗?
引用:
DEBUG需要用栈来保存调试信息的
上面你只要看看就能看出里面的东西就是你正在执行的地址
  相关解决方案