本章开始探索CPU各组件如何通过8位数据总线和16位地址总线连接,重点介绍寄存器阵列,它在七个寄存器中存储字节:A(Accumulator)、B、C、D、E、H(表示"高")和L(表示"低")。
这是寄存器阵列的简化版本。七个锁存器标有对应七个寄存器的字母。由于空间限制,锁存器的输入和输出信号未标注。每个锁存器的8位输入在顶部;输出在底部;Clock信号在左侧。这些锁存器由左上角的Clock和Input Select信号控制。
锁存器的输出与七个三态缓冲器组合。与锁存器一样,输入在顶部;输出在底部;Enable信号在右侧。这些由右上角的Enable和Output Select信号控制。
Accumulator始终可用,因为它成为算术逻辑单元的A输入。
在某些情况下需要递增和递减16位值。因此,CPU专门为此设计了一个电路。
您可以使用顶部中央的"旋转控件"选择16位十六进制数字。每个上下箭头控制一个数字。然后,点击左上角的Clock按钮将该值存储在16位寄存器中。点击右上角的Decrement或Increment按钮将启用三态缓冲器在底部显示结果。
注意!如果您尝试各种值,很容易忘记点击Clock将新值存储在锁存器中。
上面显示的(相对)简单寄存器阵列需要通过两种方式增强以使其更加多功能。首先,Accumulator寄存器需要独立控制,以便值可以保存在Accumulator中并在以后检索。这是图中左侧的附加电路。
其次,H和L寄存器需要连接到地址总线。HL寄存器对用于寻址内存,并且寄存器对可以递增和递减。这需要右侧显示的更广泛的修改。
在下一章中,这个寄存器阵列将连接到8位数据总线和16位地址总线。数据总线在这里由顶部的8位旋转控件和底部的8-Bit Output表示。地址总线由16位旋转控件和16-bit Output表示。
这个寄存器阵列与早期的寄存器阵列兼容,但它还有五个新的控制信号:
要将数据总线上的值(由8位旋转控件选择的值)保存在Accumulator中,请按Accumulator Clock按钮。要在数据总线上显示Accumulator的值,请按Accumulator Enable按钮。
地址总线上的值可以用16位旋转控件指定。要将其保存在HL寄存器对中,首先按HL Select使该按钮亮起。这将选择来自旋转控件的32位值。然后按HL Clock将16位值保存在H和L寄存器中。要在地址总线上显示HL寄存器对的值(这里由16-Bit Output显示表示),请按HL Enable按钮。