Little Man Computer

24.4. Little Man Computer

教育用のLittle Man Computerシミュレータ(LMC)を使って,プログラムが実際にどのように動いているのか確認します.

24.4.1. シミュレータの使い方

LMC シミュレータを動かしてみましょう.

... このページを読む

24.4.2. 1+2の計算

前ページで入力したプログラムは, 1 + 2 という計算をしています. 1ステップずつ実行して理解しましょう.

... このページを読む

24.4.3. プログラムの書き換え

“1+2” のプログラムを “2-1” のプログラムに書き換えてみましょう.

... このページを読む

24.4.4. 分岐を使うプログラム

分岐を使うと,より複雑な計算を行えます.例として絶対値を計算します.

分岐命令 #

分岐に関する主な命令に,以下があります.

BRA n
無条件でn番地にジャンプ
BRP n
“ACCUMULATOR"の値が非負(正またはゼロ)のときにn番地にジャンプ
BRZ n
“ACCUMULATOR"の値がゼロのときにn番地にジャンプ
BR は branch,A は always, P は positive, Z は zero の先頭文字とつなげると,認識しやすいです.
通常の実行ではプログラムカウンタの値は1ずつ増えますが,ジャンプ実行時は指定の値 (n) になります

プログラムの入力 #

絶対値を計算する例題プログラムを,プログラム領域にコピー&ペーストして,“Submit"ボタンを押して,メインメモリに読み込んでください.2行目の BRP 3 が分岐です

... このページを読む

24.4.5. 反復処理

条件分岐と反復処理を行うと,さまざまな計算が実現できます. 1から10までの和を,反復で計算してみましょう.

... このページを読む

24.4.6. ラベルの利用

プログラムとアドレス #

反復処理の例として用いた"1から10までの和"を計算するプログラムは以下のように命令とデータだけが記述されていました.
LDA 11
ADD 12
STA 11
LDA 12
SUB 13
STA 12
BRZ 8
BRA 0
LDA 11
OUT
HLT
DAT 0
DAT 10
DAT 1 
しかし,実際にどのデータを用いるのか,プログラムはどこにジャンプするのかを理解するためには,アドレス値(番地)が欠かせません.つまり,以下のようにアドレスと命令が並べた表記の方が読みやすいです.
0       LDA 11
1       ADD 12
2       STA 11
3       LDA 12
4       SUB 13
5       STA 12
6       BRZ 8
7       BRA 0
8       LDA 11
9       OUT
10      HLT
11      DAT 0
12      DAT 10
13      DAT 1

LMCでは,このアドレス付きのプログラムも実行できます.このアドレス付きのプログラムをプログラム領域にコピー&ペーストした後に,“Submit"ボタンを押してメインメモリに読み込んでください.

... このページを読む

24.4.7. 例題プログラム

ここまでに学んだことをもとに,プログラムの動作について考えてみましょう.

... このページを読む

24.4.8. レポートの作成と提出

全ページの 例題プログラム を参考にして,プログラムを作ってみましょう.

... このページを読む

24.4.9. 参考: 命令セット

... このページを読む

練習問題 Little Man Computer シミュレータの使い方
このサイトは開発版の はいぱーワークブック です.