编程论坛
注册
登录
编程论坛
→
汇编论坛
关于ip中内容的问题
tzblue
发布于 2009-11-12 10:24, 556 次点击
大家好,请教一个问题:假设ip中的值是2,如果减去9,那么此时ip中的值是多少呢?
6 回复
#2
onepc
2009-11-12 15:30
什么IP?cs:ip里的ip?还是ipv4中的IP?
#3
tzblue
2009-11-12 15:34
汇编板块当然是cs:ip里的ip了,呵呵。
#4
onepc
2009-11-12 17:11
嗯,IP是指向下一条的IP指令,比如16位中的寻址是2^16次方,这个IP都有可能在0-2^16的里
我的理解是不会出现IP减去比IP大的数,还有,这个IP要修改的话,应不会是用动态修改。直接指定确定的地址。给他。
#5
tzblue
2009-11-12 17:22
是有这么个问题,看一篇教程里有一个实验,是关于jmp的。那个例子程序中ip是0008,一个jmp 标号,后,ip值就是0000了(指向了第一条指令),但那个jmp标号在编译时是EBF6(F6是-10d的补码),就是ip向前跳10个字节。所以即ip-10d=-2(而实验中却是0)。于是就产生主题中的想法了。按理说应该越界了。
#6
onepc
2009-11-12 17:40
;jmp计算:目的地址-(本身jmp的起始地址+本身指令长度)=jmp 后面的数据
向前跳就是正的,向后跳就负就是用补码表示。
jmp xxx 改变IP的值,向上面的话,会或报错?自动修正为0?这个不清楚。~
#7
tzblue
2009-11-13 15:07
合计明白了,0008处被存放了DBF6机器码,该机器码长2个字节,所以执行前ip的值被设置为10d,那么执行后ip-10d=0,就跑到了第一条指令。
1