LoginSignup
2
0

More than 3 years have passed since last update.

一からコンピュータを作るぞ! ~機械語、コンピュータアーキテクチャ~

Last updated at Posted at 2020-09-02

下記の資料を参考にした。
コンピュータシステムの理論と実装 4章 機械語
コンピュータシステムの理論と実装 - 資料一覧 - connpass

機械語

  • コンピュータにおけるハードウェアとソフトウェアの重要なインターフェースの役割をもつ
  • プロセッサ(CPU) と レジスタ を⽤いて、 メモリ を操作する
  • 各セルは ワード と呼ぶ

英語だけれども、下記がよくまとまっています。
Machine Language

全体像

image.png

Jack

メモリアクセス

  • 直接アドレッシング
  • イミディエイトアドレッシング
  • 間接アドレッシング
    • ポインタを扱うのに用いられる

Hack機械語

メモリ操作を伴うものは2回実行する必要があります。
それが、命令メモリとデータメモリになります。

Aレジスタは、命令メモリとデータメモリ、Dレジスタは、データメモリを表します。

A命令

@

  • @R2 は、変数の宣言みたいなもの
  • M は、現在のメモリレジスタを表す
@R2
    M=0 // R2=0

A アドレス
@5のように数値だった場合は、5の2進数を レジスタに格納することになります。

C命令

comp, dest, jumpが該当し、
comp は、計算する対象、
dest は、計算した結果の格納場所、
jump は、次に何を実行するか を示します。

オペランド / オペコード

オペコードは、命令の動作を表し、オペランドは、命令の対象を表します。

命令・オペランド・オペコード | ぷにぷにバイオ
第4章 基本的なアセンブリ言語プログラミング
OSを書く:初歩から一歩ずつ | POSTD

手順

  • アセンブラを使って機械語に翻訳
  • CPUエミュレーターを使って、 hack ファイルのテストを行う

アセンブラとマシン語は,1対1に対応します。
【5分で覚えるIT基礎の基礎】だれでも一度はアセンブラを学んでおこう! 第1回 | 日経クロステック(xTECH)

コンピュータアーキテクチャ

ここからは第5章のお話です。

コンピュータ

  • CPU
  • データメモリ
  • 命令メモリ

ノイマン型アーキテクチャ

image.png

メモリ

  • データメモリ
  • 命令メモリ

レジスタ

  • レジスタは単純な計算を行うためのパフォーマンス向上に役立つ
  • レジスタは通常複数存在する

データレジスタ

計算結果を一時的に格納しておく場所

アドレスレジスタ

メモリにアクセスするためのアドレスを格納しておく場所

プログラムカウンタレジスタ

命令メモリから次にフェッチすべきアドレスを格納しておく場所

メモリとレジスタの違い

  • レジスタはメモリデータを素早くより出すことが可能
  • レジスタはメモリよりも容量が少ない

Computer system5

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0