存在的疑问
8086执行mov ax,1234h
,机器码为B8 34 12
。此时IP指向B8,当8086执行这条指令的时候,很多资料上都直接说将B8 34 12
三个字节的指令放到了指令队列。
我疑惑8086是如何知道这三个字节是一个指令,有的汇编指令是两个字节,它又是如何知道两个字节是一个完整的指令的?为什么8086不将B8 34 12
中的12
作为第二条指令的开始呢?
猜想
经过查找资料,发现B8
这个指令的字节是包含mov ax
的,也有可能包含接下来要取几个字节的信息。这样才会取到一个完整的指令。下面是我画的一个示意图:
不清楚这样的理解是否正确。目前也没有办法验证这个是否正确。如果有老师知道这个的话在评论区帮忙解个惑吧,谢谢啦