Assembly x86 CPU如何区分具有相同字节表示形式的操作码?
我刚刚注意到x86中某些指令的字节表示是相同的,例如一些类型的JMP(FF/5)和INC(FF/0): 它们都可以有一个r/m32操作数,因此它们也不能通过操作数的大小来区分,那么x86 CPU如何区分它们并知道哪个是正确的呢?引用:“斜杠后跟数字,如/2,表示指令的操作数之一是内存地址或寄存器(表示为mem或r/m,大小可选)。这将被编码为有效地址,带有ModR/m字节[…],ModR/m字节的备用(寄存器)字段应为给定的数字(从0到7,因此适合三位)Assembly x86 CPU如何区分具有相同字节表示形式的操作码?,assembly,x86,cpu-architecture,machine-code,Assembly,X86,Cpu Architecture,Machine Code,我刚刚注意到x86中某些指令的字节表示是相同的,例如一些类型的JMP(FF/5)和INC(FF/0): 它们都可以有一个r/m32操作数,因此它们也不能通过操作数的大小来区分,那么x86 CPU如何区分它们并知道哪个是正确的呢?引用:“斜杠后跟数字,如/2,表示指令的操作数之一是内存地址或寄存器(表示为mem或r/m,大小可选)。这将被编码为有效地址,带有ModR/m字节[…],ModR/m字节的备用(寄存器)字段应为给定的数字(从0到7,因此适合三位)