まずは1アドレス分
仕様編に書いたとおり今回のCPUに搭載するROMは「5bit × 4アドレス」とする。まずは1アドレス分を作ろう。1アドレス分は5bitなので1bit分の回路を5個並べる。上からbit0、1、2、3、4となる。

複数アドレスを実装するには
2アドレス以上にする場合は、5bit分のスイッチを図の様に増やしていく。そしてアドレス切り替えスイッチを追加する。このスイッチを切り替えることで、どのアドレスをGNDに落とすかを選択する。選択されたアドレスのデータを読み出す事ができる。
下図のように、アドレス0の全bitのスイッチが閉じており、アドレス1の全bitスイッチが開いている回路を考える。出力は、アドレス0は全bitが0、アドレス1は全bitが1となれば良い事になる。
回路の動きを見ていくと、まずアドレス切り替えスイッチがアドレス0側に接続されている場合、アドレス0側のスイッチがGNDに落ちるようになる。よって全bitが0Vとなり、出力は全bitが0となる。

次に、アドレス切り替えスイッチがアドレス1側に接続された場合、全スイッチがGNDに落ちず電源に吊られた状態である。よって全bitが5Vとなり、出力は全bitが1となる。

以上のように、各bitのスイッチを開または閉に設定することでROMに命令コードとデータを入力することが出来る様になる。そして、読み出したいアドレスをアドレス切り替えスイッチで選択する。
ここのアドレス切り替えスイッチは上記の様な物理スイッチを用いるのでは無い。電気的に切り替えることのできるスイッチを使う。電気的なスイッチは論理回路を用いて自作する。論理回路でセレクターというものを作れば、電気的に切り替えらえれるスイッチとなる。論理回路によるセレクターについては事項で解説をする。
最後にシミュレータで作った4アドレス分のROMを示す。bit0〜3が命令コード、bit4はイミディエイトデータとなる。実際の回路には各スイッチの後ろにダイオードを接続する。詳しい説明は割愛するが、電流が別のアドレスの回路に回り込むのを防ぐためである。
