只是优化时间关键型循环。 我拥有的代码(相当少数)
RLA &0xABCD现在作为一个模拟指令、
ADD &0xABCD, &0xABCD由于它具有一个源和目的地址、并且在我看来需要3个周期来运行(例如、将源和目的地址作为同一个地址没有好处)、所以实现了现在的执行方式。
问的原因是什么、我想我可以 重新编码为
MOV &0xABCD, R12 RLA R12。 看起来像是一条额外的指令、但两个代码都需要6个字节进行编码、并且都在3个周期内运行。 那么、这是正确的-第二个的唯一缺点是它使用了一个寄存器(在本例中为 R12)? 优点是、如果需要额外的操作(例如、额外的 RLA)、那么这些操作在寄存器上完成、是在一个周期内运行的两个字节指令-例如、非常快和很小。
那么、这是正确的吗?