| 計算機工学 2000 Computer Engineering 2000 | 
, 
, updated
計算機工学2000の目次ページへ戻る (back to computer engineering 2000 index  page) 
 CASLプログラミングの基本(その2)
.....LD, ST, ADD + DC 命令で書けるプログラムを究める
 CASLプログラミングの基本(その2)
.....LD, ST, ADD + DC 命令で書けるプログラムを究める
講義ノート(講義後の加筆修正版, 2000 Oct., 2nd, 18:30 JST)
今日のポイント
----------------------------------------------------------------------
1.CASLのプログラミングの基本(その2)
1-1  基本3命令(LD,ST,ADD)のデータ転送
1-2  定数の定義方法…DC命令	New!
1-3  メモリの場所の指定方法…直接アドレシング(記号アドレスを直接書く方法)
2.分岐なしのCASLプログラミング…連接
2-1 アルゴリズムの基本3要素
2-2 基本3命令(LD,ST,ADD)で書けるプログラムを究める.
3  前期末テスト対策
----------------------------------------------------------------------
1.CASLのプログラミングの基本(その2)
1-1  基本3命令(LD,ST,ADD)のデータ転送
     CASLの命令形式…レジスタ・メモリ間 → 教科書 pp.129-130
	命令の操作対象は,1) CPU内のレジスタ(Reg)と,
			  2)メモリ(場所をアドレス指定する)の2者間
	オペランド…命令の操作対象のこと.
データ転送命令	
形式	命令	オペランド	操作説明	コメント
	LD	Reg,Memory	Reg <- (Memory)   Memory(番地)の内容をReg にコピー
	ST	Reg,Memory	Reg -> (Memory)	  Reg の内容をMemory番地にコピー
	ADD	Reg,Memory	Reg <- Reg + (Memory)
注意!	コピーとは値の上書きのこと(以前のデータは破壊される)
オペランドの数による命令の分類
	LD,ST命令…2つ(転送元:from, 転送先:to)
	ADD命令…3つ(操作対象1,2,操作結果の転送先)	
但し,CASLの命令(アーキテクチャ)では,操作結果の転送先が操作対象の1つと同一
	→ オペランドの指定は2つ.
		2アドレスマシンと呼ばれる → 教科書 p.130
Q. LD命令とST命令のデータ転送の様子を表す図を書け.
1-2  定数の定義方法…DC命令	New!
(1)DC命令とは?
	プログラムで用いる定数データを,メモリ上のある番地へ設定する命令
形式	label	DC	定数	コメント
ex.	DATA	DC	30	DATA番地 に 30 を設定.
(2)定数の書き方	10進数	10進数をそのまま書く
			16進数	先頭に#をつける.
Q. DATA 番地に各自の学籍番号を設定する命令を書け.
1-3  メモリの場所の指定方法…直接アドレシング(記号アドレスを直接書く方法)
	→ 配付資料(その1) CASLの総合研究,pp.28-31
2.分岐なしのCASLプログラミング…連接
2-1 アルゴリズムの基本3要素
	1) 初期設定	(計算に用いるデータをメモリ上に設定する)
	2) 処理	(プログラム本体)
	3) 終了処理	(結果の代入など)
	
CASLプログラムを,上の3つに分けて作ろう/考えよう.
配付資料(その2) CASLの総合研究,pp.39, 図1-12 のプログラムを
2-1 の順序で書き直してみる.
(START, EXIT, END などの命令は,前期末テストでは無視する.)
A+B=>C のCASLプログラム:山口版
ラベル  命令    オペランド   操作説明		コメント
						1) 初期設定
A	DC	#0027	     (A) <- 0027H	
B	DC	#001D	     (B) <- 001DH	   
C	DC	0	     (C) <- 0		   結果(を格納する)変数をゼロクリア
						2) 処理(プログラム本体)
PROG	LD	r, A	     r <- (A)
	ADD	r, B	     r <- r + (B)	    A+B をレジスタr に
						3) 終了処理
	ST	r, C	     r -> (C)		    結果の代入,C <- A+B
<注意>
(記号アドレス)PROG は,2)処理(プログラム本体)の先頭行を表す.
2-2 基本3命令(LD,ST,ADD)で書けるプログラムを究める.
(1) ADD命令の繰り返しで掛け算を書こう
Q.2-1  各自の学籍番号を2倍するプログラムを書け.
但し,各自の学籍番号をDATA 番地に設定し,結果は,RESULT 番地へ格納せよ.
プログラムの考え方
2-1 A+B=>C のCASLプログラム:山口版 を修正して作成せよ.
Q.2-2  各自の学籍番号を3倍するプログラムを書け.
(2) ADD命令の繰り返しで2のn乗を計算しよう.
Q.2-3  LD,ST,ADD命令を用いて2のn乗を計算せよ.
但し,初期値として1をDATA 番地に設定し,
   結果および途中結果は,RESULT 番地へ格納せよ.
<放課後のQAで説明した計算アルゴリズム>
1+1=2……2の1乗
2+2=4……2の2乗
4+4=8……2の3乗
     	・
	・
という繰り返し構造を用いて,2のn乗を小さいnから順に求めていく.
数学の漸化式で書くと...
2n = 2*2n-1
   = 2n-1 + 2n-1
3  前期末テスト対策
中間テスト以降,10/2 までの講義で説明した内容が中心.
教科書 pp.121-123, バス接続方式を用いたプロセッサ内の動作
CASLのプログラミング(その1,その2)など.
以上.