为什么有些架构没有MOV?

时间:2017-06-21 23:12:46

标签: assembly architecture mips cpu cpu-architecture

在大学期间,我研究了 x86 x64 架构,以及其他采用 MOV 功能的架构。和他们一起工作后,当我找到一个像 MIPS r3000 一个,或者Commodore 64那个没有MOV并且依赖于保存到内存并从内存加载以在寄存器之间移动值时,我感到很困惑

所以,我想知道,这个背后的原因是什么?我们设计了基于信号处理的体系结构,至少在这些情况下,MOV函数的实现只依赖于同时打开注册表写入和注册表读取信号,从而使其成为一个非常简单的命令。那么,为什么它不在这些架构中实现呢?他们是如此不同,事情不是这样的吗?空间问题?时髦设计?

我不禁怀疑。

1 个答案:

答案 0 :(得分:4)

X86需要MOV指令,因为它的原始咒语8086依赖于2个操作数指令。如果您的指令集如下:

instruction destination_op, source_op

专用mov指令的替代方案很少。

但是,如果像mips那样你有3个操作数指令

instruction destination, source1, source2

然后,有许多方法可以将数据从源移动到目标,而无需专用的mov指令 另外,一些指令集仅具有不同名称的移动指令,例如, Z80为LD(加载),6502为T??(转移)。