haiouda 发表于 2015-4-27 22:32:32

二个基本问题

本帖最后由 haiouda 于 2015-4-27 22:37 编辑

一、检测点,9.1 中,cs:ip 中的 ip 值为何,只能为0 ?

二、jmp命令:

在可以用 jmp short (或 jmp near ptr)时,都可以用 jmp far 替换吗?
如果可以,jmp short (或 jmp near ptr) 相对 jmp far在可以互换时,有什么优势?

或者 jmp short和jmp near ptr可以相互夫换的位置 ,用 jmp short   有什么优势?

                                                                                                         谢谢

taochen 发表于 2015-4-27 22:32:33

一、不是说IP的值只能为零,是因为题目要求转移到第一条指令,所以IP是0.
二、jmp short 是短转移,给出的是位移;jmp far是段间的转移,给出的是目的地址。如果说有什么优势,指令在内存中的存储长度不一样,short只占两个字节,far占五个字节

haiouda 发表于 2015-4-27 22:51:48

本帖最后由 haiouda 于 2015-4-27 22:53 编辑

复习了,实验8 ,有了一点结论---相对偏移 ---绝对寻址, jmp short和jmp near ptr 和 jmp far 的巧妙,适当运用,可以始程序更加灵活。


第一是问题求解,IP 值为何为只能 零 ?

haiouda 发表于 2015-4-28 11:00:43

taochen 发表于 2015-4-28 09:30
一、不是说IP的值只能为零,是因为题目要求转移到第一条指令,所以IP是0.
二、jmp short 是短转移,给出的 ...

这么说来,第一条指令的,IP一定是 零 了?

taochen 发表于 2015-4-29 15:10:13

haiouda 发表于 2015-4-28 11:00
这么说来,第一条指令的,IP一定是 零 了?

指令是放在代码段里,段的起始地址必须是16的倍数,所以默认为:段地址+偏移地址(0000)。第一条指令会放在段的起始位置,所以是默认为0000

haiouda 发表于 2015-4-30 11:20:56

taochen 发表于 2015-4-29 15:10
指令是放在代码段里,段的起始地址必须是16的倍数,所以默认为:段地址+偏移地址(0000)。第一条指令会 ...

还是有点想不通

haiouda 发表于 2015-4-30 22:27:08

taochen 发表于 2015-4-29 15:10
指令是放在代码段里,段的起始地址必须是16的倍数,所以默认为:段地址+偏移地址(0000)。第一条指令会 ...

end start

想了半天,想出点眉目,cx:ip 中的 ip 是代码段的起始地址,具体地说,就是 end 后面 start 标号处 IP==零地址。

也不知道我想的对不对,请走过路过的各位给点意见,谢谢

Loading.... 发表于 2015-6-18 19:38:24


看看而已

阔怀 发表于 2015-8-5 11:50:47

:lol:
页: [1]
查看完整版本: 二个基本问题