对于这两条指令:
12 / r将进位r / m8加到字节寄存器中。
REX + 12 / r使用进位r / m64添加到字节寄存器。
如果第一条指令上的寄存器是9-16,那么它们都可以有REX前缀......那么CPU如何区分两者?第一条指令上的REX前缀是否在第7位中缺少1,所以它只是REX.B 0x01?
答案 0 :(得分:2)
不,显然不是。第一个没有REX前缀,第二个没有。第一种形式按定义没有REX前缀,因此不能拥有它(根据定义,它将使其成为第二种形式)。它们都在手册中的原因是,在带有REX前缀的表单旁边可以有星号,并且注意它不能编码AH,BH,CH或DH。
第一条指令的REX前缀是否在第7位中缺少1,所以它只是REX.B 0x01?
这没有任何意义。
那么CPU如何区分两者?
好吧,一个有REX前缀而另一个没有。