关于王爽老师汇编语言69页CS,DS,SS在同一地址的问题
题目是在10000H-1001FH安排为代码段,并储存如下代码。为什么我做出来的结果是这样的 求大神为我解答?@小甲鱼师傅下面上图
新手求支持!
:shock::shock:有么有师兄啊 你是所想说执行的时候代码改变了吗?
其实你只要吧sp设置大一点就好了,比如 mov sp,40这样就可以了
至于为什么是因为,你sp = 20而你代码最后一个是1edebug 执行命令t的之后会执行一个中断,中断会往栈中压入数据,而刚好压入的数据与代码重叠了,所以代码就被覆盖了。 xiaosawanjava 发表于 2014-6-9 20:49 static/image/common/back.gif
你是所想说执行的时候代码改变了吗?
其实你只要吧sp设置大一点就好了,比如 mov sp,40这样就可以了
...
是push指令把原来的code段的代码覆盖,从而导致后面的指令改变了吗?
好像懂了点 谢谢!好人一生平安 fish-john 发表于 2014-6-9 22:12 static/image/common/back.gif
是push指令把原来的code段的代码覆盖,从而导致后面的指令改变了吗?
好像懂了点 谢谢!好人一 ...
恩就是这样子的,入栈是sp-2 debug 执行 t命令是要调用中断的,所以要入栈 一共要入栈3个,也就是6个字节,20h-6你自己算下覆盖了几个字节。 xiaosawanjava 发表于 2014-6-9 23:18 static/image/common/back.gif
恩就是这样子的,入栈是sp-2 debug 执行 t命令是要调用中断的,所以要入栈 一共要入栈3个,也就是6个 ...
中断我还没开始学,这个我懂了嘿嘿
页:
[1]