汇编语言---检测点2.3----求共同指教努力
题目 CPU几次修改IP,都是在什么时候,IP最后值为多少MOV AX,BX
SUB AX,AX
JMP AX
MOV AX,BX 假如这条指令为x个字节。
那么这条指令后IP指向的是 x个字节的长度,所以此时IP=x,指向的是下一条指令。(修改的第一次)
SUB AX,AX 此时AX = AX - AX ,如果此条指令为y个字节。
那么这条指令后IP指向的是x+y个字节的长度,所以此时IP= x+y,指向的是下一条指令。(修改的第二次)
这里大家意义最大,我结合大家的作业题写出如下
JUM AX 此时AX = 0, 如果此条指令为z个字节。
那么这条指令IP现在修改了一次,IP=x+y+z,但是没有执行下一条语句而是跳转指令,JUM AX (ax = 0) 指向IP=0的位置。
IP总共修改了4次
第一次MOV AX,BX IP=x
第二次SUB AX,AX IP=x+y
第三次jmp ax 因为有这条指令,已经创建了地址空间,所以IP此时为 x+y+z
第四次jmp ax 因为要执行跳转,ax值为0 所以IP被强制改为0这个地址。
IP最后值为0
这个题解释没看明白,jmp ax,为什么你的解析中jmp ax执行了两次呢 applangzi 发表于 2017-5-27 22:02
这个题解释没看明白,jmp ax,为什么你的解析中jmp ax执行了两次呢
当jmp指令进入CPU还没有执行的时候IP第一次变,执行后又变一次,可以看下书中CPU执行的顺序就明白了 {:10_257:} lmsouth 发表于 2017-6-8 21:53
当jmp指令进入CPU还没有执行的时候IP第一次变,执行后又变一次,可以看下书中CPU执行的顺序就明白了
说得非常对!! 你好,博主,ip地址不是只能jmp来修改的吗,mov怎么也能改ip的值 DongGu.. 发表于 2021-1-18 20:53
你好,博主,ip地址不是只能jmp来修改的吗,mov怎么也能改ip的值
CS相当于人
IP相当于动的人
不管动手还是动脚,怎么动他都动了
MOV也好JMP也罢都是动了 所以执行一条指令时是先移动ip后执行指令 {:10_257:}
页:
[1]