#16 第2回 COMETⅡ・CASLⅡ の概要

目標

・COMETⅡの構成を理解する。※COMETⅡ:仮想のCPU

① 構成する要素の名称を言う事ができる

② 各構成要素の役割を説明することができる

③ 構成要素にサイズがある場合に,そのサイズ(何ビット)を言う事ができる

 

CASLⅡの文法を理解する。※仮想CPU:COMETⅡ用のアセンブラ言語

アセンブラ言語とは何か言う事ができる

② 命令の名称と文法を説明する事ができる

③ プログラムを縦方向に見て,どの様な命令を書くか説明できる

④ 定義できる定数を4つあげ,説明できる

⑤ 例として出てくるプログラムの意味が理解できる

http://manabu.quu.cc/up/2/e25010.htm

 

機械語とは何ですか?

⇒ 2進数(0、1)で表現されたプログラム

 

アセンブラ言語とは何ですか?

機械語の命令と記号の表現を1対1で対応させた言葉

 

アセンブルとは何ですか?

アセンブラ言語を機械語に変換する事

 

アセンブラとは何ですか?

⇒ 変換するためのソフトウェア

 

CASLⅡとは何ですか?

⇒ 仮想CPU:COMETⅡで動作するアセンブラ言語

 

・1語(1ワード)とは何ですか?

⇒ CPUが1度に扱える情報の大きさ

 

・1度に扱える情報の大きさとは何ですか?

⇒ メモリのアドレスで示される場所の大きさ,CPUのレジスタの大きさ,メモリからCPUのレジスタに1度で転送できるデータの大きさ

 

・重みとは何ですか?

⇒ 

 

● COMETⅡの構成図

レジスタとはなんですか?

⇒ CPUが処理を実行するために,1時的にデータを格納しておくデータの入れ物

 

・PR(プログラムレジスタ)とは何ですか?

⇒ 次に実行される命令のアドレスを保存

 

・IR(命令レジスタ)とは何ですか?

⇒ 解読・実行する命令を保存

 

・GR(汎用レジスタ)とは何ですか?

⇒ 8つの汎用レジスタ

 

・FR(フラグレジスタ)とは何ですか?

⇒ 演算後の符号の状態を保持

 

・MAR(メモリアドレスレジスタ)とは何ですか?

⇒ メモリを読み書きする際に,アクセスするアドレスを指定するレジスタ

 

・MDR(メモリデータレジスタ)とは何ですか?

⇒ メモリとのデータのやり取りするレジスタ

 

レジスタ以外の構成要素

・ALU(演算装置)とは何ですか?

⇒ 算術・論理・シフト・比較の演算を行う

 

・Decoder(命令解読器)とは何ですか?

⇒ IRの命令を解読するモジュール

 

・Controller(制御装置)とは何ですか?

⇒ 命令の実行の制御を行うモジュール

 

・Bus(バス)とは何ですか?

レジスタやALUの間をデータが通る道

 

・Adder(アドレス加算器)とは何ですか?

⇒ 命令のアドレス部とインデックスレジスタの内容から有効アドレスを求める加算器

 

● メモリ

 

GR(汎用レジスタ

 

4.4

SP(スタックポインタ)

 

4.5

 

4.8MARとMDR

 CPUとメモリ間のデータのやり取り 

① メモリからデータを読み出す

⇒ 読み出すデータのあるアドレス(番地)をMARに設定し,読み出し信号を送る

⇒ MARのデータだMDRに設定される

⇒ MDRからIRやGRへデータが送られる

 

② メモリにデータを書き込む

⇒ 書き込み先のアドレス(番地)をMARに設定

⇒ 書き込むデータをMDRに設定

⇒ 書き込み信号を送ると,MDRの内容がMARへ書き込まれる

 

【キーワード】

MAR(メモリアドレスレジスタ

MDR(メモリデータレジスタ

 

【5 CASLⅡの概観】

5.1

・1命令を1行

・大文字で書く

 

5.2 横の構造

・4つの部分(ラベル・命令コード・オペランド・注釈)から構成

ラベル:場所に付ける名前

命令コード:命令の種類(命令コードは必ず書かれる)

オペランド:操作対象

注釈:

 

5.4 縦の構造

「START」と「END」の中にプログラム(手続き部分)が書かれる

 

5.5 縦の構造 手続きとデータ

「手続き」と「データ」に分かれる

 

5.6 データ部分で使われる命令

DC命令:Define Constant 「定数を定義せよ」

    定数で指定したデータをメモリに格納する

DS命令:Define Strage「領域を定義(確保)せよ」

    ・指定した語数の領域を確保する。

    ・答えを入れる場所が欲しいなどに書く

 

5.7 CASLⅡの定数

① 10進定数

そのまま書く

② 16進定数

先頭に#を書く

③ 文字定数

’ ’で囲む

④ アドレス定数

ラベルを書く

〇 メモリへの格納イメージ

 

5.8 命令の種類

 

・・・時間が掛かり過ぎる・・