MOV D D是什么意思?

时间:2013-07-17 18:01:46

标签: assembly microprocessors 8085

汇编语言,指令

MOV A B

表示将B(来源)的内容移至A(目的地) 我突然想出了指示

MOV D D

这意味着什么?

我在实验手册中看到了这一点。截图:

enter image description here

3 个答案:

答案 0 :(得分:7)

8085寄存器到寄存器的MOV指令是正交的。也就是说,存在将任何8位寄存器移动到任何其他8位寄存器的操作码。因此MOV D,D将D寄存器的内容移动到D寄存器。它没有做任何有用的事情,也没有影响任何标志,但它是一个有效的指令,就像MOV A,AMOV B,B等一样。

将寄存器复制到自身实际上是“无操作”或NOP指令。 “官方”8085 NOP是操作码00,但任何寄存器移动到自身的指令都具有相同的效果。

它实际上只是处理器设计方式的一种神器。你可以做一些利用这些指令的技巧,但它们通常没用。

答案 1 :(得分:5)

你必须牢记这个时代,8085是在1977年设计的。当时的集成电路工艺技术并没有那么先进,它们可以放在芯片上的晶体管数量有一个非常严格的上限。它只使用了6,500个。

这严重限制了他们可以用来实现处理器的逻辑类型。操作码中选择操作数的位直接传递给寄存器组多路复用器。并且在使用寄存器的其他指令中占据相同的位位置和含义。燃烧额外晶体管的预算不能用于没有意义的操作数的特殊例外。将它们留在原地更简单,更便宜,而不是用逻辑来处理特殊情况。

没有太大的问题,没有人会偶然使用荒谬的指示。

它的工作方式相反,有时处理器在指令集中有一个明显的漏洞。 Z80就是这样。用于在前几个硅通道中被窃听的指令,并且被认为不足以修复。所以他们只是把它从文档中删除了。或者将它们留在原地,6502是notoriously buggy。虽然有一个非常有吸引力的价格:))

答案 2 :(得分:1)

这是一项NOP操作,用于程序延迟。