プログラムがコンピュータで動く仕組み

書籍情報

発売日 : 2021年11月05日

著者/編集 : 中野 浩嗣/伊藤 靖朗

出版社 : コロナ社

発行形態 : 単行本

書籍説明

内容紹介

本書は、Verilogを用いて小さなCPUを設計し、それをターゲットとするアセンブラとコンパイラを作成することを通して、プログラムがどのような仕組みでコンピュータで動作するのかという疑問に簡潔に答える。

目次

1. Verilogによる組み合わせ回路の設計
1.1 Verilogの基本構文とシミュレーション
 1.1.1 Verilogによる半加算器の回路記述
 1.1.2 半加算器のテストベンチ
 1.1.3 IcarusVerilogによるシミュレーション
 1.1.4 モジュールのインスタンス化
 1.1.5 Verilogの定数表現
 1.1.6 Verilogの演算子
 1.1.7 always文
 1.1.8 ビット数可変の組み合わせ回路
1.2 セレクタ回路とその応用
 1.2.1 セレクタ回路
 1.2.2 7セグメントデコーダ回路
 1.2.3 算術論理演算回路
演習問題
2. Verilogによる順序回路の設計
2.1 フリップフロップとカウンタ回路の設計
 2.1.1 フリップフロップの設計
 2.1.2 カウンタ回路の設計
2.2 ステートマシン回路の設計
2.3 スタック回路の設計
2.4 メモリ回路の設計
演習問題
3. TinyCPUの設計の準備
3.1 演算スタック回路
 3.1.1 中置記法と後置記法
 3.1.2 演算スタック回路の設計
3.2 命令フェッチ回路
3.3 式計算回路
3.4 拡張命令フェッチ回路
 3.4.1 バス
 3.4.2 バスを用いた拡張命令フェッチ回路
演習問題
4. TinyCPUの設計
4.1 TinyCPUの構成部品と機械語コード
4.2 TinyCPUの構造と動作
4.3 TinyCPUのVerilogソースコード
4.4 TinyCPUの簡単なプログラム例
4.5 TinyCPUのテストベンチとシミュレーション
演習問題
5. アセンブリ言語プログラミング
5.1 アセンブリ言語とC言語
 5.1.1 アセンブリ言語TinyASM
 5.1.2 C言語風プログラミング言語TinyC
5.2 基本構文のTinyASMプログラム
 5.2.1 代入文
 5.2.2 if文
 5.2.3 while文
 5.2.4 do文
5.3 TinyASMプログラムの例
 5.3.1 コラッツの問題
 5.3.2 ユークリッドの互除法
演習問題
6. アセンブラの設計
6.1 TinyASMアセンブラ
6.2 Perl超入門
 6.2.1 Perlプログラムの基本構造とスカラ変数
 6.2.2 ファイルの読み出し,リスト,連想配列
 6.2.3 文字列の置換
6.3 アセンブラの設計
演習問題
7. コンパイラの設計
7.1 TinyCコンパイラの概略
7.2 Flexを用いた後置記法の式の計算
7.3 FlexとBisonを用いた中置記法の式の計算
 7.3.1 Flexによる字句解析
 7.3.2 Bisonによる構文解析
 7.3.3 中置記法の式計算プログラムの生成と実行
7.4 代入文専用のコンパイラ
 7.4.1 Flexによる字句解析
 7.4.2 Bisonによる構文解析
7.5 TinyCコンパイラ
 7.5.1 Flexによる字句解析記述
 7.5.2 Bisonによる構文解析記述
 7.5.3 変数の宣言のための文法規則
 7.5.4 if文のための文法規則
 7.5.5 ifelse文のための文法規則
 7.5.6 while文のための文法規則
 7.5.7 do文のための文法規則
 7.5.8 halt文とout文のための文法規則
 7.5.9 TinyCプログラムのコンパイル例
演習問題
引用・参考文献
索引

著者情報

中野 浩嗣
中野, 浩嗣
伊藤 靖朗
伊藤, 靖朗