第1个回答 2022-07-14
1、CPU从cs:ip所组成的地址中读取指令,将这个指令存放到指令缓存器中。
2、ip = ip + 所读指令的字节数。
3、执行指令缓存器中的内容,回到步骤1重复这个过程。
这里解释下第二步,首先,每一条指令的长度是不一样的,比如,FF,1C2D,E24001,这样三个指令,都是十六进制的,每2个16进制的代表一个字节。所以以上3条指令的字节长度为,1个字节,2个字节,3个字节。
举个例子:
mov ax,1000,这条指令的16进制表示形式为:B80010。字节长度为3。
上面说了,cpu执行指令的过程中的第二步,ip = ip + 所读指令的字节数。
从以上截图中可以看到,在进行第二步之前,cs:ip = 073F:0100,执行完第二步之后为:cs:ip = 073F:0103
验证结果正确。