2023-06-06から1日間の記事一覧

6.3.2 シンボルの処理 / 非公式訳 / two passアセンブラ

p.108 シンボルの処理 アセンブリプログラムはシンボルラベル(goto命令の行き先)が使用できます。シンボルラベルは、シンボル自体の定義される位置より前の位置であっても使用できます。この機能は、アセンブリコード作成者の作業を楽にしてくれる一方で、ア…

コンピューターアーキテクチャー / Lチカで動作確認をする

Chapter 5 バグはたくさん残っているであろうが一往動いているので現状で固めておく。nandのみというルールは途中でいい加減になったが、これで、CPUの創りかた (TD4)、動かしてわかるCPUの作り方10講、CPU1738と合わせて4種類作ったことになる。 Lチカで動…

コンピューターアーキテクチャー / Hackコンピューターを作る

Chapter 5 これでハードウェアは完成である。 library ieee; use ieee.std_logic_1164.all; use ieee.numeric_std.all; entity hack is port ( test_load_pc: out std_logic; -- 確認用に外に出す。 reset: in std_logic; clk: in std_logic; in_port: in st…

コンピューターアーキテクチャー / CPUを作る

Chapter 5 全部組み合わせてCPUを作る。 library ieee; use ieee.std_logic_1164.all; use ieee.numeric_std.all; entity cpu is port ( clk: in std_logic; instruction: in std_logic_vector(15 downto 0); in_m: in std_logic_vector(15 downto 0); reset…

コンピューターアーキテクチャー / 命令デコーダーを作る

Chapter 5 テキストにはほとんど解説がない。ジャンプ命令についてはSimplify[]函数で簡単化した。BooleanMinimize[]函数を使ってもよい。ルールをゆるめてnand以外も使う。 Simplify[ inst_msb && ( (And[!j2, !j1, j0] && (!zr && !ng)) || (And[!j2, j1, …