简单8086汇编问题:如下图所示,为什么原来为:mov ds:[0],ax的指令,会变成:AND [BX+SI],AL呢?求解

请详细解说,谢谢。。。麻烦了。。。源程序:有网友要求公布源程序,之前没公布是因为上边已经反汇编出来了。。。麻烦大伙了,请详细指点。。。。... 请详细解说,谢谢。。。麻烦了。。。
源程序:

有网友要求公布源程序,之前没公布是因为上边已经反汇编出来了。。。麻烦大伙了,请详细指点。。。。
展开
 我来答
fastfs
2013-09-06 · TA获得超过1423个赞
知道大有可为答主
回答量:2659
采纳率:62%
帮助的人:811万
展开全部
堆栈设置小了,DEBUG执行T命令时要用6字节的堆栈,前面执行两条MOV指令要用12字节的堆栈覆盖了一些数据,解决办法把堆栈设大点。
追问
兄弟你回答得很好,不过满意答案只能有一个,不好意思哈。。。谢谢(可以加你Q吗?你汇编这么牛逼,以后可以常想你请教,嘿嘿)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
做而论道
高能答主

2013-09-05 · 把复杂的事情简单说给你听
知道大有可为答主
回答量:3万
采纳率:80%
帮助的人:1.2亿
展开全部
请把源程序,公布出来。
追问

之前没公布,是因为我上边已经反汇编过了。。。麻烦你了。。。。

追答
程序,堆栈空间,留出的太少,仅仅 16 字节,仅能压栈 8 次。

使用 DEBUG 软件,进行单步调试的时候,DEBUG 也会使用应用程序的堆栈。

所以,有些代码,就不明不白的被改变了。

改成这样:MOV SP, 100H,就可以了。
这是 256 字节。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
勤恳且俊秀的白桦6
2013-09-05 · 超过13用户采纳过TA的回答
知道答主
回答量:71
采纳率:0%
帮助的人:28万
展开全部
的确挺怪异。看楼上怎么说。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式