2013年度 プログラミングⅠ ~ 内部構造と動作の仕組み(2) ~ 担当教員: 幸山 直人 2013年度 プログラミングⅠ 機械語とアセンブラ言語 高級言語 (ソフトウェア) C言語など 機械語 (ソフトウェア) コンピュータ (ハードウェア) ・最終的には、機械語に変換される ・人間が扱いやすい 1対1 アセンブラ言語 (ソフトウェア) ・コンピュータの本質的命令 ・人間に比較的わかりやすい 2013年度 プログラミングⅠ COMETⅡとCASLⅡ COMETⅡ(コンピュータ) COMETⅡは、実在しないコンピュータだが、コンピュータと しての五大機能を備えた仮想のコンピュータである。 CASLⅡ(アセンブラ言語) CASLⅡは、COMETⅡ上で動作する機械語に対応するア センブラ言語である。 注意:CASLⅡの仕様書は、情報処理技術者試験を実施いている情報処理推進機構 から入手できるほか、情報処理技術者試験の「案内書・願書」の巻末に記載されている。 また、CASLⅡのプログラミングを体験できるシミュレータも提供されている。 その他、多くの有志によってCASLⅡを学習できる教材がインターネット上で提供され ているので、必要に応じて学習してもらいたい。 2013年度 プログラミングⅠ COMETⅡの主な仕様 1語は16ビット 主記憶の容量は65536語で0~65535番地 逐次制御 汎用レジスタは8つ(GR0~GR7) その他のレジスタとして、スタックポインタ(SP) とプログラムレジスタ(PR) 演算結果により設定されるフラグレジスタ(FR) OF SF ZF 2013年度 プログラミングⅠ 機械語の構造 出力先(レジスタ) OP 回路指定 r/r1 x/r2 adr 入力先(レジスタまたは実効アドレス) OP(8ビット):命令コード(回路指定) r/r1(4ビット):レジスタ(出力&入力) x/r2(4ビット):レジスタ(入力) 1語の場合:(r/r1)+(x/r2)(adrはなし;第2語はなし) 2語の場合:(x/r2)+(adr)の値(x/r2≧8⇒0+(adr)) adr(16ビット):主記憶の番地(入力) 2013年度 プログラミングⅠ アセンブラ言語(機械語命令)の例 ■レジスタGR1の値にレジスタGR2の値を加える ラベル ADDA 命令コード オペランド ADDA GR1,GR2 1 2 ■レジスタGR1の値に実効アドレス(DATA)の値(#01FA)を加える ラベル 命令コード ADDA オペランド GR1,DATA DATA DC #01FA ADDA 1 (8) 実効アドレス(DATA) 2013年度 プログラミングⅠ アセンブラ言語のプログラミングの例 ■1+2を計算する(実効アドレス(ANS)に答え3が記憶される) ラベル EXAM DATA1 DATA2 ANS 命令コード START LD ADDA オペランド ST RET DC GR0,ANS DC DS END GR0,DATA1 GR0,DATA2 #0001 #0002 1 命令領域 データ領域 2013年度 プログラミングⅠ プログラムの実行 アドレス #0000 値 アドレス **** #0038 ~ 値 **** ~ #002D **** #00FF #002E PUSH #002F *(スタックへ積む) #0101(DATA2) #0002 #0030 LD #0102(ANS) ****(実行後、#0003が入る) #0031 #0100 #0103 **** #0032 ADDA #0033 #0101 #0034 ST #0035 #0102 #0036 POP #0037 **** * 0 0 0 (8) (8) #0100(DATA1) #0001 ~ #FFFF 0 (8) 0 * **** **** (1)まず、OSによってプログラムとデー タがメモリ上に書き込まれる。 (2)通常、レジスタを使用する前はレジス タの内容を退避させる(黄色の部分)。 2013年度 プログラミングⅠ 注意すべきこと ロードアドレス(LAD)、プッシュ(PUSH)、 コール(CALL)だけは実行アドレスに格納さ れている値ではなく、実行アドレス(アドレス) そのものを演算することに注意する 2013年度 プログラミングⅠ コンピュータシステム[再掲] 外部 コンピュータ プログラム データ 結果 処理 2013年度 プログラミングⅠ 5大機能(2)[再掲] 中央処理装置(CPU) 制御装置 演算装置 入力装置 プログラム 記憶装置 データ 出力装置 制御 2013年度 プログラミングⅠ ノイマン型コンピュータ •プログラム内蔵方式 •逐次制御方式 2013年度 プログラミングⅠ コンピュータシステム(まとめ) ノイマン型コンピュータ プログラム内蔵方式 逐次制御方式 2進数(命令・データ) 四則演算 (足し算・補数表現・シフト演算) 2進数 論理演算 論理回路 ブール代数 半導体
© Copyright 2025 ExpyDoc