Super科o 发表于 2015-9-23 15:55:40

关于检测2.3 求大神详细讲解

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

答:一共修改四次
第一次:读取mov ax,bx之后
第二次:读取sub ax,ax之后
第三次:读取jmp ax之后
第四次:执行jmp ax修改IP
最后IP的值为0000H,因为最后ax中的值为0000H,所以IP中的值也为0000H


哪位大神详细讲下 谢谢了!!

y290176346 发表于 2015-9-23 15:55:41

我是不大神,首先你要知道IP 是干什么的!IP 就是指令偏移地址,什么是指令偏移地址,说的通俗点就是cpu执行指令的当前地址。也就是说cpu每执行一句指令,地址就跟着改变,cup需要往前走嘛!也就是说cpu走一步,ip就改变一次,所以三句指令IP 就改变三次,但是最后一句jmp就是改变地址的指令,所以执行网最后一句指令后,ip需要根据最后一次指令的内容来改变自己,所以一共改变四次,不对的地方大神莫笑我,其实我是来领鱼币的

y290176346 发表于 2015-9-23 16:45:41


我是不大神,首先你要知道IP 是干什么的!IP 就是指令偏移地址,什么是指令偏移地址,说的通俗点就是cpu执行指令的当前地址。也就是说cpu每执行一句指令,地址就跟着改变,cup需要往前走嘛!也就是说cpu走一步,ip就改变一次,所以三句指令IP 就改变三次,但是最后一句jmp就是改变地址的指令,所以执行网最后一句指令后,ip需要根据最后一次指令的内容来改变自己,所以一共改变四次,不对的地方大神莫笑我,其实我是来领鱼币的

Super科o 发表于 2015-9-23 22:27:41

y290176346 发表于 2015-9-23 16:45
我是不大神,首先你要知道IP 是干什么的!IP 就是指令偏移地址,什么是指令偏移地址,说的通俗点就是cpu ...

也就是不管执行什么语句 IP先改变一次,然后因为执行的是JMP语句所以IP还要再变一次对吗

y290176346 发表于 2015-9-24 09:04:27

对啊,你想想啊,cpu 他要一步一步的往前一句一句的执行命令,你可以理解成每一句命令都有一个编号,编号存放的位置是在IP 的这个寄存器中,执行一句,IP 的地址就往前走,就要相对按照递增的顺序的增加,如果程序有变化,你不想按照IP 自动的递增顺序走,你就要通过jmp命令来跳转到新的编号,来继续运行,其实我是来领鱼币的,

442860990 发表于 2015-9-25 19:03:04

领取鱼币··

442860990 发表于 2015-9-25 19:51:49

领鱼币

想飞的咸鱼jojo 发表于 2020-2-14 17:56:27

追贴,请问关于这道题,最后的IP地址为0000H。会不会返回到第一条语句继续执行
页: [1]
查看完整版本: 关于检测2.3 求大神详细讲解