鱼C论坛

 找回密码
 立即注册
查看: 3080|回复: 4

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

[复制链接]
发表于 2011-10-8 20:37:59 | 显示全部楼层 |阅读模式

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

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

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

QQ截图20111008193329.png



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

QQ截图20111008195914.png

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

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

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

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 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不相同,也就是他们不是同一段内存段,操作的时候不会相互干扰。详细过程见附件。
Untitled.jpg
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-10-9 12:14:36 | 显示全部楼层

我可不可以理解为 cpu在执行t命令的时候, 都是通过cs:ip来执行, 但我们要在指令里 有 ds:【0】  或ss:sp才能把变成我们想要的数据,或栈 内容呢?比如: mov ax, 1000  mov ds, ax  这指令里有 ds  就是  数据 ,   mov ax, 1000  mov ss, ax  这样就是栈了    , 它 执行的时候  都是通过 cs:ip来引导这些指令的, 是不是 这样呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-10-9 14:41:37 | 显示全部楼层
100531319 发表于 2011-10-9 12:14
我可不可以理解为 cpu在执行t命令的时候, 都是通过cs:ip来执行, 但我们要在指令里 有 ds:【0】  或ss ...

是的,多写写代码再回头看看书,有些东西就突然明白了!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-10-10 15:20:52 | 显示全部楼层
seuer126 发表于 2011-10-9 14:41
是的,多写写代码再回头看看书,有些东西就突然明白了!

谢谢   以后一定努力
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-19 08:23

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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