Intel 4004チップのメモリチップにデータを書き込む方法
目次
- イントロダクション
- バンク0のメモリチップにデータを書き込む方法
- レジスタ0の選択
- メモリの選択と指定
- メモリの書き込みとインクリメント
- インクリメントスキップオンゼロ
- レジスタのインクリメントとジャンプ
- ステータスレジスタの指定
- 無条件ジャンプと停止
- メモリチップ1への切り替え
- 出力ポートの追加
- 2つのチップ間の切り替え
- チップのリフレッシュ
【目次】イントロダクション
このビデオでは、Intel 4004チップの第2部をお届けします。このビデオでは、バンク0の2つのメモリチップにデータを書き込む方法について説明します。4002 Ramチップのメモリをアドレス指定する方法がわからない方は、このビデオの前にイントロダクションビデオをご覧ください。リンクは情報ボックスに記載していますので、事前に選択されたビューのバンク0チップで始めましょう。
【目次】バンク0のメモリチップにデータを書き込む方法
まず最初に、メモリバンクを選択する必要があります。CPUのリセット後、メモリバンク0は既に選択されていますが、バンク0になっていることを確認するために、メモリバンクをクリアし、アキュムレータとキャリーフラグをクリアするためのDESIGNATEコマンドを使用します。次に、メモリ自体を指定する必要があります。レジスタペア0を使用し、0を指定します。ここで、バックスラッシュはSIコマンドであり、バックスラッシュ以降はコメントです。バイナリ形式でコーディングされており、チップの選択システムは最も重要な部分です。次に、レジスタの選択、メモリ文字およびダウンの選択が行われます。次に、2つの制御ビットがあり、0pはチップとレジスタの選択を行います。メモリへの書き込みでは、アキュムレータに値を取り、アキュムレータをインクリメントし、その値をメモリに書き込みます。そして、ここでメモリの場所をインクリメントしなければなりません。これには「インクリメントスキップオンゼロ」というコマンドがあります。ここで指定したレジスタの4ビットの値がインクリメントされ、この場合はインクリメントするレジスタが1です。レジスタ0はレジスタ0なので、レジスタ1をインクリメントします。もしゼロでなければ、指定したアドレスにジャンプします。これをループと呼びましょう。また、このラベルはコンマで終わる必要があります。それでは、テストをしてみましょう。コーチをバインドし、値をリセットし、プログラムをステップ実行し、メモリに書き込みます。レジスタ0の場所がインクリメントされ、レジスタ1のインクリメントが行われた後に、メモリに書き込まれています。プログラム全体をステップ実行すると、レジスタ1がインクリメントされ、ジャンプスキップが行われるため、ループに戻らずにすみます。次は、ステータスレジスタを指定しましょう。レジスタ0にステータスを書き込み、レジスタ1にも書き込みます。そしてアキュムレータをインクリメントして別の値にします。それでは、ここにストップのラベルを追加しましょう。そして無条件ジャンプでストップし、またループします。コードを生成し、結果を戻し、読み込み、再生しましょう。これで、エンドレスループで実行されています。最後に、チップの切り替えをする必要があります。メモリチップ1に切り替えましょう。出力ポートを追加します。アキュムレータをインクリメントし、メモリポートに書き込みます。そして、リフレッシュします。次は、0P0ペアレジスタを上書きしましょう。0と1のチップセレクトでよく、0を4回選択します。そして、条件付きジャンプに移りましょう。これをルーパゼロと呼びましょう。これにより、2番目のチップがリフレッシュされます。サーチアラウンドアニメイトです。2番目のチップが変化します。2つのチップ間を交互に切り替える必要があります。指定したレジスタに別の値があれば、チップ-にジャンプします。チップ-に移動します。ゼロであれば、最初の部分にジャンプする必要があります。ピキングビギンを指定しましょう。ここにレジスタ12を追加しましょう。リリースアップへの追加です。コードを生成し、リセットして、貼り付けて、読み込み、再生しましょう。これで、2つのレジスタが埋められています。デクリメントも追加しなければなりません。コードを確認し、ロードして、アニメーションします。うまくいきます。次にメモリチップ1に切り替えましょう。いや、いや、アウトプットポートを追加してください。アキュムレータをインクリメントして書き込みます。コマンドは"right memory port"で、アキュムレータを書き込んでいます。切り替えて、ロードして、アニメーションします。アウトプットも書き込まれています。次のステップは、チップ1に同じことを行うことです。では、0p0ペアのレジスタを上書きしましょう。チップセレクトを1に設定し、0と4回選択します。その後、条件付きジャンプに移りましょう。これをループアゼロと呼びましょう。これにより、セカンドチップがリフレッシュされます。サーチアラウンドアニメイトです。セカンドチップが1つずつリフレッシュされています。したがって、2つのチップの間を交互に切り替えるために別のレジスタを使用する必要があります。インクリメントスキップゼロを使用しましょう。レジスタ12を使用し、ゼロでなければチップ-にジャンプし、ゼロであれば再びループにジャンプします。コードを生成するためにリセットし、貼り付けし、ロードし、アニメーションします。チップが埋まっていきます。何度も埋まっていきます。最後に、ファストモードで実行できるようにします。実行します。これで、このビデオは終わりです。ご視聴いただきありがとうございました。バイバイ。
ハイライト
- Intel 4004チップのメモリチップへのデータ書き込み方法
- メモリバンクの選択と指定
- レジスタ0の選択とインクリメント
- インクリメントスキップオンゼロの使用
- ステータスレジスタの指定
- メモリチップの切り替えとリフレッシュ
FAQ
Q: Intel 4004チップは何に使用されますか?
A: Intel 4004チップは、初期のパーソナルコンピュータのメモリ管理に使用されました。
Q: メモリチップの切り替えはなぜ必要ですか?
A: メモリチップの切り替えにより、より大容量のデータを処理することができます。
Q: インクリメントスキップオンゼロは何のために使用されますか?
A: インクリメントスキップオンゼロは、指定したレジスタがゼロでない場合にジャンプするために使用されます。
Q: ステータスレジスタは何を管理しますか?
A: ステータスレジスタは、プロセッサの状態やフラグの管理に使用されます。