MOV命令限制的原因

时间:2014-12-31 09:39:45

标签: assembly x86 mov restrictions

为什么MOV变量,变量不正确? 或者,如果我们使用变量作为第一个操作数,为什么我们必须只有寄存器或立即数? 或者为什么这是错的: MOV [x],除了直接或登记之外的任何东西 这些规则是如何定义的? 编辑: 我说的是8086处理器。

2 个答案:

答案 0 :(得分:4)

x86 MOV指令根本不支持同一指令中的加载和存储。

您可以从内存加载到寄存器,也可以将寄存器存储到内存中。如果要在一条指令中将内存复制到内存,则需要MOVS指令,该指令需要两个指针并复制它们。

答案 1 :(得分:0)

汇编命令的规则由处理器定义,或者更确切地说由生产处理器的公司......和电子设备定义。寄存器是proc的内部寄存器,因此可以在一个机器周期内复制到存储器或从存储器复制。但是从内存复制到另一个内存会通过处理器(或通过协处理器进行DMA操作)。