为什么在x86中的指令movx中使用两个内存操作数是不对的?有硬件问题吗?
答案 0 :(得分:2)
硬件问题是指令集没有这样的指令。
CPU 可以当然可以通过允许两个内存操作数的指令进行扩展,但英特尔还没有这样做,因为它确实没有太大的好处。他们为什么会这样?
答案 1 :(得分:1)
记忆只是记忆。它不知道如何移动东西 - 这就是CPU的作用,所以你1)从内存复制到CPU,2)从CPU回到内存。 mov指令就是这样做的。
将CPU内部的mov指令连接起来更加复杂,因此可能隐含地执行这两项操作可能不会带来任何好处。
更专业的MOVS
指令可以在两条存储器指令之间移动,但它需要2个寄存器,因此如果需要保存这些寄存器通常没有任何好处。
还有其他设备,例如DMA引擎,可以减轻CPU的负担。