打挺鱼 发表于 2015-4-23 20:16:30

检测点2.3

下面3条指令执行后,CPU几次修改IP?都是在什么时候?最后IP中的值是多少?mov ax,bx
sub ax,ax
jmp ax


首先根据 代码 我们可以看到
mov ax,bx   我们将bx的值存入ax中,暂且不管bx的值为多少我们就认为bx中有一个数据
sub ax,ax   然后我们重新给ax赋值ax = ax - ax ,所有ax的值应该为 0
jmp ax         当jmp指令,指向的是一个通用寄存器ax,代表的意思为修改 IP 的值
IP的值为ax即IP 的值应为0


所以CPU只修改了1次IP
执行到 jmp ax 时 修改了
IP中的值 为 0

打挺鱼 发表于 2015-4-23 20:24:02

忽然想到了   一段代码运行后,IP 会自动增加一些数据,所以上面应该是错的
IP 修改了3次如果我们忽略了第一次指向
因为IP每次都会在指令运行后加上指令所占用的长度
所以第一次在mov ax,bx指令运行后
第二次在sub ax,ax指令运行后
第三次在jmp ax   指令运行后
最后Ip的值应为0

打挺鱼 发表于 2015-4-24 08:59:43

解:
修改4次;第一次在CPU读取“mov ax,bx”后,第二次在CPU读取“sub ax,ax”后,第三次在CPU读取“jmp ax”后,第四次在CPU执行完“mov ax,bx”后;最后IP中的值为0。

容我默默的哭次

哥斯拉不说话 发表于 2015-5-27 07:15:01

打挺鱼 发表于 2015-4-24 08:59
解:
修改4次;第一次在CPU读取“mov ax,bx”后,第二次在CPU读取“sub ax,ax”后,第三次在CPU读取“jmp...

第四次怎么来的啊?

LLP难得糊涂 发表于 2015-6-4 02:44:34

sub ax,ax的意思是ax=ax-ax
ip ax=0
这是第四次

hexiaofengye 发表于 2015-6-4 12:19:33

谢谢打挺鱼

fast 发表于 2015-6-20 03:00:18

{:1_1:}

abnerfive 发表于 2015-9-16 15:47:09

学习咯,谢谢

白开水1982 发表于 2015-9-20 08:58:24

结合你的答案苦苦思索终于知道答案怎么求出来!!

shuangsi 发表于 2015-12-12 00:41:43

打挺鱼 发表于 2015-4-24 08:59
解:
修改4次;第一次在CPU读取“mov ax,bx”后,第二次在CPU读取“sub ax,ax”后,第三次在CPU读取“jmp...

sud 是重新赋值吗

cjj9020 发表于 2015-12-16 07:02:45

谢谢解答,有点知道了:lol:

gt3223 发表于 2015-12-17 09:18:09

感谢分享^_^

西电图图 发表于 2016-3-2 21:21:45

我认为就修改了三次
第一次:mov ax,bx
第二次:sub ax,ax
执行完: jmp ax后ip直接变成了0000H,并不会先加再指向0000H

白泽 发表于 2016-3-14 17:31:04

sub ax,ax是什么意思

兰陵月 发表于 2016-3-16 19:55:14

打挺鱼 发表于 2015-4-23 20:24
忽然想到了   一段代码运行后,IP 会自动增加一些数据,所以上面应该是错的
IP 修改了3次如果我们忽略了 ...

不是指令运行后,是读取该条指令后,IP就改变了,IP改变之后,再执行该指令。

兰陵月 发表于 2016-3-16 19:55:58

哥斯拉不说话 发表于 2015-5-27 07:15
第四次怎么来的啊?

你少看一条指令,第一条指令在第一行的最后。

兰陵月 发表于 2016-3-16 19:57:30

西电图图 发表于 2016-3-2 21:21
我认为就修改了三次
第一次:mov ax,bx
第二次:sub ax,ax


第一次:读取mov ax,bx后
第二次:读取sub ax,ax后
第三次:读取jmp ax后
第四次:执行jmp ax后

anaf 发表于 2016-4-21 20:05:41

sub ax,ax    我看成了0相减掉了

Maru 发表于 2016-9-3 16:25:54

很好的解释,受教了

張家祥 发表于 2016-9-11 21:34:45

本帖最后由 張家祥 于 2016-9-11 21:36 编辑

请问一下 第三次改变IP是在读取了JUM AX 这段指令之后
          第四次改变IP是出现在CPU执行了JUM AX 这段指令之后


这样理解正确吗? 感谢各位大大
页: [1] 2 3
查看完整版本: 检测点2.3