計算機工学 2000 Computer Engineering 2000 |
,
, updated
計算機工学2000の目次ページへ戻る (back to computer engineering 2000 index page)
講義ノート(講義後の加筆修正版, 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)など. 以上.