鱼C论坛

 找回密码
 立即注册
查看: 2051|回复: 2

Debug无故结束,栈中元素为何变化?就指点!

[复制链接]
发表于 2013-4-21 20:42:20 | 显示全部楼层 |阅读模式
1鱼币
本帖最后由 风筝1025 于 2013-4-21 21:06 编辑

我还没p~p呢程序咋就退了呢?栈中的元素为何会变化?

就是小甲鱼零基础汇编视频第30个,将数据段中的数据逆序存放
源程序:
assume cs:codesg,ds:data,ss:stack

   data segment
   dw 0123h,0456h,0789h,0abch,0defh,0cbah,0987h,567ah
   data ends
   
   stack segment
   dw 0,0,0,0,0,0,0,0
   stack ends
   
   
codesg segment
   
   x: mov ax,stack
      mov ss,ax
      mov sp,0010h
   
      mov ax,data
      mov ds,ax
   
      mov cx,8
      mov bx,0
  s1: push [bx]
       add bx,2
       loop s1
   
       mov bx,0
       mov cx,8
  s:  pop [bx]
      add bx,2
      loop s
   
      mov ax,4c00h
      int 21h
   
    codesg ends

end x

7(ZM~~BG0@6RWSFOQLWZDEV.jpg

5JI{O$U7V1SI5}A98E{V{9A.jpg



最佳答案

查看完整内容

实际上在系统给出正常中断之前,s那部分循环pop出堆栈数据指令已经执行过了。至于此时用t命令不能达到预想的目的。是跟本地系统和编译器有关的。等你学到中断的时候对于此问题会有所了解的。暂且搁下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-4-21 20:42:21 | 显示全部楼层
实际上在系统给出正常中断之前,s那部分循环pop出堆栈数据指令已经执行过了。至于此时用t命令不能达到预想的目的。是跟本地系统和编译器有关的。等你学到中断的时候对于此问题会有所了解的。暂且搁下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-4-21 23:50:10 | 显示全部楼层
copy了一下楼主的代码 跟了一下,我这边倒是没出现异常退出的情况,但是,我t命令跟的时候发现了,每次pop操作之后 栈的内容确实是变了,这个确实耐人寻味,等待楼下的人给个解答
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-17 18:40

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表