我读到MOV
指令不能为其两个操作数都有内存位置。
赞:不允许MOV [0012H], [0016H]
。
为什么会这样?
其他指令可以为其两个操作数设置内存位置吗?
答案 0 :(得分:8)
创建CPU时,这是一个设计决策。您拥有更多寻址模式和更多指令,指令获得更大(就表示指令所需的位数而言)。更大的指令需要更长的时间才能从内存中获取。
换句话说,x86的指令集不是orthogonal。至少现在不一定是坏的,只写非常有限的汇编代码。
其他一些CPU(例如同一时代设计的MC680xx)可以做到这一点。