100531319 发表于 2011-10-8 20:37:59

关于debug中的 push和pop疑惑!本人菜鸟!希望大神们指点下我这个菜鸟!谢谢

ss:1000 , sp:0010,ax:002A,bx:002B提前 写好了 怎么直接push,ax和bx不行?






这个第二个是 在a命令 后面 加 ss:sp    1000:0010 来引导还是不行!



这个 又 怎么 能用T 命令 执行了呢?它们是不是有 联系啊!   还有 a 命令了 就13c4:0100=cs:ip

这个13c4:0100=cs:ip   是 代码段 和偏移地址   那怎么能执行ss:sp的呢 ?   第二图 我试过 用 a 1000:0010 =ss:sp
来那个。。引导, 额不知道对不对,错了跟我下,也不行! 所以 求 高手大大们为我 解解惑!拜谢!

哦 对了如果 图片 不清晰的话跟我说说   我在 传大点的 ! 希望 大大们 给我解惑的时候不要整专业术语啊什么的,我不懂
希望大大们   讲 通俗点!    恩 在次 谢谢!!!

yk94215 发表于 2011-10-8 22:23:16

完全不懂楼主在说什么。
首先从你的第一张图来说你的代码是写在1000:0018处,所以用t命令执行的时候你的CS:IP应该指向这个位置,而你第一张图中的CS:IP=13BE:011A 你这个时候用-t命令执行的并非是你写的代码。
第二张图一样CS:IP并非在你所写的程序位置。第三个图的CS:IP刚好指向你写的程序位置。所以可以执行。

PUSH AX是指把AX的内容送入栈中,栈底位置在SS:SP处。当执行PUSH时是先将SS:SP-2然后再把AX的值放在这儿。PUSH BX一样的。而POP是PUSH的反运算。SS和CS不相同,也就是他们不是同一段内存段,操作的时候不会相互干扰。详细过程见附件。

100531319 发表于 2011-10-9 12:14:36

yk94215 发表于 2011-10-8 22:23 static/image/common/back.gif
完全不懂楼主在说什么。
首先从你的第一张图来说你的代码是写在1000:0018处,所以用t命令执行的时候你的C ...

我可不可以理解为 cpu在执行t命令的时候, 都是通过cs:ip来执行, 但我们要在指令里 有 ds:【0】或ss:sp才能把变成我们想要的数据,或栈 内容呢?比如: mov ax, 1000mov ds, ax这指令里有 ds就是数据 ,   mov ax, 1000mov ss, ax这样就是栈了    , 它 执行的时候都是通过 cs:ip来引导这些指令的, 是不是 这样呢?

seuer126 发表于 2011-10-9 14:41:37

100531319 发表于 2011-10-9 12:14 static/image/common/back.gif
我可不可以理解为 cpu在执行t命令的时候, 都是通过cs:ip来执行, 但我们要在指令里 有 ds:【0】或ss ...

是的,多写写代码再回头看看书,有些东西就突然明白了!

100531319 发表于 2011-10-10 15:20:52

seuer126 发表于 2011-10-9 14:41 static/image/common/back.gif
是的,多写写代码再回头看看书,有些东西就突然明白了!

{:5_110:} 谢谢   以后一定努力 {:5_109:}
页: [1]
查看完整版本: 关于debug中的 push和pop疑惑!本人菜鸟!希望大神们指点下我这个菜鸟!谢谢