鱼C论坛

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

[汇编作业] 关于王爽老师汇编语言69页CS,DS,SS在同一地址的问题

[复制链接]
发表于 2014-6-9 19:24:40 | 显示全部楼层 |阅读模式

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

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

x
题目是在10000H-1001FH安排为代码段,并储存如下代码。为什么我做出来的结果是这样的     求大神为我解答?@小甲鱼师傅
下面上图

1

1

2

2

3

3

4

4

新手求支持!

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

使用道具 举报

 楼主| 发表于 2014-6-9 20:00:22 | 显示全部楼层
:shock::shock:有么有师兄啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-6-9 20:49:12 | 显示全部楼层
你是所想说执行的时候代码改变了吗?  
其实你只要吧sp设置大一点就好了,比如 mov sp,40  这样就可以了
至于为什么是因为,你sp = 20  而你代码最后一个是1e  debug 执行命令t的之后会执行一个中断,中断会往栈中压入数据,而刚好压入的数据与代码重叠了,所以代码就被覆盖了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-6-9 22:12:51 | 显示全部楼层

是push指令把原来的code段的代码覆盖,从而导致后面的指令改变了吗?   
好像懂了点      谢谢!好人一生平安
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-6-9 23:18:52 | 显示全部楼层
fish-john 发表于 2014-6-9 22:12
是push指令把原来的code段的代码覆盖,从而导致后面的指令改变了吗?   
好像懂了点      谢谢!好人一 ...

恩就是这样子的,入栈是sp-2   debug 执行 t  命令是要调用中断的,所以要入栈 一共要入栈3个,也就是6个字节,20h-6  你自己算下覆盖了几个字节。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-6-10 00:17:11 | 显示全部楼层
xiaosawanjava 发表于 2014-6-9 23:18
恩就是这样子的,入栈是sp-2   debug 执行 t  命令是要调用中断的,所以要入栈 一共要入栈3个,也就是6个 ...

中断我还没开始学,这个我懂了  嘿嘿
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-10-7 04:29

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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