Lar*_*rtu 2 architecture cpu assembly mips cpu-architecture
在大学里,我研究了x86和x64架构,以及其他使用MOV函数的架构。在与他们一起工作后,当我发现像MIPS r3000或 Commodore 64 这样的产品没有 MOV 并且依赖于保存到内存和从内存加载来在寄存器之间移动值时,我感到很困惑。
所以,我想知道,这背后的原因是什么?我们设计了基于信号处理的架构,至少在这些情况下,MOV 函数的实现仅依赖于同时打开注册表写入和注册表读取信号,从而使其成为一个非常简单的命令。那么,为什么它没有在这些架构中实现呢?他们是如此不同,事情就不是这样的吗?空间问题?时髦设计?
我不禁想知道。
X86 需要一条MOV指令,因为它的原始咒语 8086 依赖于 2 个操作数指令。如果您的指令集如下所示:
instruction destination_op, source_op
Run Code Online (Sandbox Code Playgroud)
除了专用指令之外,几乎没有其他选择mov。
但是,如果像 mips 一样,您有 3 个操作数指令
instruction destination, source1, source2
Run Code Online (Sandbox Code Playgroud)
然后有很多方法可以将数据从源移动到目的地,而不需要专用mov指令。
另外,某些指令集仅具有不同名称的移动指令,例如LDZ80 的(加载)和T??6502 的(传输)。