关于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
来那个。。引导, 额不知道对不对,错了跟我下,也不行! 所以 求 高手大大们为我 解解惑!拜谢!
哦 对了如果 图片 不清晰的话跟我说说 我在 传大点的 ! 希望 大大们 给我解惑的时候不要整专业术语啊什么的,我不懂
希望大大们 讲 通俗点! 恩 在次 谢谢!!!
完全不懂楼主在说什么。
首先从你的第一张图来说你的代码是写在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不相同,也就是他们不是同一段内存段,操作的时候不会相互干扰。详细过程见附件。 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来引导这些指令的, 是不是 这样呢?
100531319 发表于 2011-10-9 12:14 static/image/common/back.gif
我可不可以理解为 cpu在执行t命令的时候, 都是通过cs:ip来执行, 但我们要在指令里 有 ds:【0】或ss ...
是的,多写写代码再回头看看书,有些东西就突然明白了!
seuer126 发表于 2011-10-9 14:41 static/image/common/back.gif
是的,多写写代码再回头看看书,有些东西就突然明白了!
{:5_110:} 谢谢 以后一定努力 {:5_109:}
页:
[1]