0

如何在一个步骤中将一个寄存器(8 位)中的最高半字节(4 位)分配给另一个寄存器的最高半字节?不改变 4 个 LSb?

这是我提出的解决方案,当我可以分两步完成时,但我相信有更巧妙的解决方案只需一步即可完成(可能需要更少的门或指令):

  • REGA &= (REGB | 0x0F);
  • REGA |= (REGB & 0xF0);

任何擅长数字设计的人都可以帮忙吗?(现在是凌晨 3 点,我睡不着觉:-/)

4

1 回答 1

3
A = (A & 0x0F) | (B & 0xF0)

(请注意,此操作需要零门,但......)

于 2014-01-26T01:14:33.500 回答