関西地区

教育システム情報学会 2014年度学生研究発表会

日本語表現の機械語命令を用いて CPU の動作原理を学ぶ
高校生向け Web 教材
山崎 亨
中西 通雄
Toru YAMASAKI
Michio NAKANISHI
大阪工業大学情報科学部コンピュータ科学科
Department of Computer Science, Faculty of Information Science and Technology, Osaka Institute of Technology
Email : naka@is.oit.ac.jp
あらまし：高校の「情報の科学」では，コンピュータの仕組みのところで，機械語命令が CPU で実行される仕組みが扱われている．そこでは，Load/Store といった命令表記の代わりに読み出し/書き込みといった日本語表記が使われている．本教材では，学習者が日本語表記を用いた機械語命令を用いて簡単なプログラムを作成・実行してみることにより，CPU の動作の仕組みを学習できるようにした．
キーワード：コンピュータの仕組み，CPU，機械語命令，Web 教材

1.

はじめにグラム）の実行を終了させるための終了処理をセッ
トし，すべての命令のセットが完了する．これで主記憶の内容を実行することができるようになる．データ部である 11 番地から 15 番地の初期値は変更可能であるが，終了処理を主記憶にセットした後は，数値の変更はできない．

高等学校の教科「情報」の一部の教科書では，CPUの動作原理が扱われている．しかし，教科書の図や解説だけでは CPU の動作原理を理解しづらい．そこ
で，原理の理解を容易にするために，実際に操作して 学 ん で も ら う 教材 を 開発 し た ． 本 教 材 では ，Load/Store などの機械語命令を日本語表記で扱えるようにした．
類似研究として，大学生向けのアセンブリ言語の知識が必要なものや[1]，アセンブリ言語を事前に学習してから利用するものがあるが[2]，これらは初学者にとって難しいので，高校での教育には適さない．

2.

Web 教材について

Web 画面上で日本語表現の命令を用いてプログラムを組み立て，それを実行する過程を通して CPU の動作原理を学ぶことができる．JavaScript で作成してあるので，本教材のファイル一式を自分のパソコンに置くだけで利用できることが特長である．
2.1 主記憶と CPU アーキテクチャ
主記憶は 1 番地から 10 番地を命令部，11 番地から 15 番地をデータ部とする．CPU にはプログラムカウンタと 4 つのレジスタを設けた．また，扱える
デ ー タ は 10 進 整 数 の み と し ， そ の 数 値 範 囲 はJavaScript で扱える整数とした．
命令セットは「読み出し命令」，「加算命令」，「減算命令」，「書き込み命令」，「非ゼロ分岐命令」，「正分岐命令」，「負分岐命令」，「終了処理」で構成した．
教科書以上に学びたい生徒のために，乗除の計算を実現できるように最低限の分岐命令を追加した．

図 1 命令セットと主記憶

2.2 Web 教材の使用方法
学習者は画面上の命令セットから命令を選択する(図 1)．各命令の左上部分の名前をクリックすると，処理の詳細が表示される．それぞれの日本語命令文の最後にある「主記憶にセット」ボタンをクリックすることで，命令が主記憶の空き番地に順次格納される．必要な命令をセットした後に，命令列（プロ

図 2

CPU の実行の様子

図 2 の右下の「一命令実行」または「すべて実行」
ボタンをクリックし，主記憶の命令を実行させる．
一命令実行では一回クリックするたびに命令がひと71教育システム情報学会 2014年度学生研究発表会

関西地区

タの基本動作における興味・関心を確認でき，図 5より，本教材と教科書を一緒に利用することで理解が深まることも確認できた．

つ実行される．読み出されたデータや加算されたデータなどは色つきで表示され，実行の様子を観察することができる．終了処理実行後，もういちど一命
令実行ボタンをクリックすることで，プログラムカウンタ，レジスタの値，主記憶のデータ部の値が，命令実行前の状態に戻り，再度初めから動作を確認することができる．
条件分岐命令を使用することで，「1 から 50 までの奇数の和を計算させる」といった表 1 のようなプログラムも作成・実行できる．

利用前確認テスト
利用後確認テスト

3.

6.2
012

3

4567

図 3 利用前後のテストの平均点
コンピュータの基本動作は理解できたか？

表 1 分岐命令を利用したプログラム
番地
12
3
4
5
678
9
10
11
121314
15

2

内容
A←11 番地の値:読み出し
B←12 番地の値:読み出しC←13 番地の値:読み出しD←14 番地の値:読み出し
A←A-B:減算
D←D+A:加算A←A-C:減算
レジスタ A>0 なら 6 番地にジャンプ
D の値→15 番地:書き込み
終了処理
50
1
2
0
0

2

4

コンピュータの仕組みについて興味を持てたか？

2.2

コンピュータの仕組みについて今後少しでも学びたいか？

2.4コンピュータのそれぞれの機構について理解できたか？

3.4
3.4

2

1

2

利用前
利用後

3.8

3

4

5

図 4 利用前後共通アンケート
この教材で理解が深まったか？

4.4

Web教材と教科書の併用で理解は深まったか？

4.4

内部処理のイメージは具体的になりましたか？

41

図 5

評価

2345Web 教材利用アンケート

3.1 評価方法

4.

4 人の高校生と 1 人の専門学校生に本教材を利用してもらい，さらに利用前と利用後にアンケートとテストを行った．評価の手順を表１に示す．手順 1
では，教科書を用いて用語の解説を行い，学習者が教科書を読んで理解できない部分を説明した．手順4 の本教材を利用した演習では，9 問の演習問題をWeb 教材で解いてもらい， CPU の動作原理を学んでもらった．

以下の 3 点が今後の課題である．
 データフローのアニメーション化
実行箇所を強調表示しているので，データの流れはこれでも見ることができるが，さらにアニメーションで表示すれば，直感的で分かりやすくなる．
この機能は jQuery を用いれば実装できる．
 命令の削除・更新・挿入
現時点での削除操作では，主記憶にセットした命令列を下から順に削除するのみである．命令列の途中の命令の削除，命令の挿入，命令内容の更新をできるようにすれば，プログラムを作成しやすくなる．
 主記憶の番地の拡張
主記憶の命令とデータの領域の区別をなくし，さらに扱える番地を拡張することで，自由度が向上する．

表 2 評価の手順
実施手順
1

内容
教科書を利用した解説

時間
10 分

2

利用前テスト

10 分

3

利用前アンケート

5分

4

本教材を利用した演習

25 分

5

利用後テスト

10 分

6

利用後アンケート

5分

今後の課題

参考文献
3.2 評価結果[1] 今井慈郎，金子敬一，中川正樹：“計算機アーキテクチ
ャ教育用ビジュアルシミュレータの組み込みメイル機能”，情報処理学会論文誌，Vol.48，No.8，pp.2748-2758(2007)[2] 金伊悦，安井浩之，吉野邦生：“漢字アセンブリ言語を用いた情報教育”，情報処理学会第 74 回全国大会，pp.807-808 (2012)

利用前後のテスト（8 点満点）の平均点を図 3 に，利用前後共通アンケート結果を図 4 に，教材に関するアンケートを図 5 にそれぞれ示す．
図 3 より，CPU の原理についての理解が深まっていることが確認できた． さらに図 4 からコンピュー

72