計算機工学 2000
Computer Engineering 2000


, , updated

計算機工学2000の目次ページへ戻る (back to computer engineering 2000 index page)


CASLプログラミングの基本(その2) .....LD, ST, ADD + DC 命令で書けるプログラムを究める

    配付資料(その2) CASLの総合研究,pp.38-43
    教科書4章,命令の種類と形式 pp.128-130

注)赤字は山口の講義後の加筆修正部分です. 注)緑字は山口の講義後の加筆部分です.
2000年10月 2日(月)曇,5,6限...計算機工学 講義ノート(by 山口):CASLプログラミングの基本(その2)

講義ノート(講義後の加筆修正版, 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)など. 以上.



yamaguch@info.nara-k.ac.jp


計算機工学2000の目次ページへ戻る (back to computer engineering 2000 index page)


山口の担当講義のページへ戻る (back to tomo's lectures page)
Tomo's Top Page へ戻る