优秀! 发表于 2019-10-5 09:49:43

监测点2.3

首先,第一次是读取mov ax,bx的时候,IP+3
第二次是读取sub ax,ax(sub的意思是减,那就是ax-ax=0)ip+3
第三次是读取jmp ax ip+2
第四次则是jmp执行的时候,ip=0;因为前面的ax-ax,不管ax的值为多少,最后都等于0,那么ip被赋值ax则为0,所以一共4次

具体参考,CPU,先读取指令之后在IP增加读取指令长度,之后在执行指令。

INstea 发表于 2020-3-25 10:17:57

谢谢,本来不是很懂,但看到你的发表,都明白了

svlik 发表于 2020-5-4 08:38:22

jmp ax ip+2 为什么IP是+2 不是 +3

ZLLI 发表于 2020-8-23 17:26:35

看不太懂,为什么要AX-AX?

chuchumaolu555 发表于 2020-10-16 11:57:14

svlik 发表于 2020-5-4 08:38
jmp ax ip+2 为什么IP是+2 不是 +3

JMP 一个 ax一个 所以是ip+2

aini414 发表于 2022-4-22 19:57:13

后面的执行第四次不懂,执行三次以后就应该停止的呀!

541忆 发表于 2022-8-24 23:51:10

4次

smw76 发表于 2022-10-5 17:41:23

{:10_249:}

德凯 发表于 2022-11-24 10:21:05

svlik 发表于 2020-5-4 08:38
**** 作者被禁止或删除 内容自动屏蔽 ****

因为jmp只是用了两个字节而已

ITBOY124 发表于 2023-1-25 22:13:05

aini414 发表于 2022-4-22 19:57
**** 作者被禁止或删除 内容自动屏蔽 ****

我也这样想的,为什么前面不是读取一次执行一次,最后一条就需要读取一次执行一次呢,如果那个是正确答案,我只能理解为前面那些都只是名词,最后一个是动词,意思是前面那些都是修改数据,最后一个是动词,所以还需要去执行一次。
页: [1]
查看完整版本: 监测点2.3