楼上朋友还是要多了解一下。
这个是出于效率方面的考虑。英特尔在设计芯片时就没支持这种内存到内存的mov。
因为进行内存操作效率远比不上进行寄存器操作。
从内存取的数是放在寄存器中,从寄存器中再放回到内存中,如果用一条指令完成,
就需要进行2次存储器读写操作,这样就造成一条指令的效率太低。所以就干脆不支持。
虽然说分成2条指令在我们看起来还不是一回事吗。。。但是这微小的差别就能提升不少效率。
至于说opcode 是先有硬件设计上的考虑,才有opcode上的反映。并不是因为OPCODE没有所以才不支持的。
我倒不记得有24种寻址方式
记得有篇很好的讲述opcode的文章,还附带3个小例子,是学习操作码的好资料。
另外即使是可以使用这样的指令,也并不表示 “把cpu给绕过了”。。。