鱼C论坛

 找回密码
 立即注册
查看: 1407|回复: 5

使用debug时遇到的问题

[复制链接]
发表于 2013-10-30 21:44:04 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 cdkyee 于 2013-10-31 21:51 编辑

最近在学小甲鱼的零基础汇编,写了个汇编程序,和教程(第六章_包含多个段的程序01)一样,但用debug检测时遇到了问题,代码附上:
assume cs:msgcs
msgcs segment
   dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cdah,0987h
   dw 0,0,0,0,0,0,0,0
start : mov ax,cs
        mov ss,ax
        mov sp,32
        mov bx,0
        mov cx,8
        
s:        push cs:[bx]
        add bx,2
        loop s

             mov bx,0
        mov cx,8
        
sz:        pop cs:[bx]
        add bx,2
        loop sz

        mov ax,4c00h
        int 21h
msgcs ends
end start


我发现每压入栈一次,堆栈段(全零那个,但在进入循环前里边的值也有变化)内的原数据会向前覆盖数据段内的数据,这是为何?菜鸟求轻喷。。。

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-11-1 10:53:48 From FishC Mobile | 显示全部楼层
因为栈地址重复了。栈的段地址应该从10h开始。并且你的代码段要和数据段分开。你都塞到一个段里面去了。虽然也可以,但是读起来很费劲,你找个课后答案参考参考。我手机就不重新打打代码了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-11-1 10:56:42 From FishC Mobile | 显示全部楼层
纠正一下,sp=20h
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-11-1 23:59:50 | 显示全部楼层
谢谢,可是我还是不明白,为什么压栈同时会使栈内数据向栈底方向移动呢,好奇怪的做法,,,不是应该覆盖相应的栈数据的吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-11-2 00:05:08 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-11-2 00:13:33 | 显示全部楼层
路过一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-28 19:21

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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