关于51暂存器TMP

来源:百度知道 编辑:UC知道 时间:2024/06/05 07:25:24
从51的block diagram中看到ALU的输入端有两个TMP(TMP1,TMP2),TMP2有两个输入端,一个是ACC,另一个是外循环总线,TMP1只有一个输入是来自总线,且TMP的输入输出都是单向的,不知道这两个TMP到底有什么作用?

如果说ALU的运算所需要两个操作数,一个肯定来自ACC,而另一个来自TMP,那只需一个TMP1就够了,TMP2有什么用,为什么需要两个?
请问TMP2何时选通总线而不是ACC?
这位达人,能否留下联系方式例如邮箱地址、QQ,方便交流!感激不尽!

当然有用, 例如为了支持"ADD A, @Ri"这条指令,由于TMP2的输出是通过选通A或者总线决定的,因此A必须来自TMP2,这时@Ri中的值来自TMP1.

其实你没弄清楚的是, ALU的运算确实有一个肯定来自ACC,但是无论来此ACC和总线,它都会在TMP里暂存,因此这时MCU会根据指令进行选通, 在上例中就选通了ACC

何时选通ACC还是总线,就要看不同的指令了, 我想一般来说,只要是操作数中不涉及ACC的指令,TMP2都只选通总线,例如LJMP addr16, 可能就需要TMP2选通高8位地址,TMP1选通低8位地址, 而这16位地址信息来自总线上的指令解码结果