Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我读到该MOV指令的两个操作数都不能有内存位置。
MOV
像 :MOV [0012H], [0016H]是不允许的。
MOV [0012H], [0016H]
为什么这样?
其他指令是否可以为其两个操作数提供内存位置?
这是他们创建 CPU 时的设计决定。你有更多的寻址模式和更多的指令,指令得到的更大(就表示指令所需的位数而言)。更大的指令需要更长的时间从内存中获取。
换句话说,x86 的指令集不是正交的。只编写非常有限的汇编代码并不一定是坏事,至少现在不是。
其他一些 CPU(例如同一时代设计的 MC680xx)可以做到这一点。