内部構造と動作の仕組み

Download Report

Transcript 内部構造と動作の仕組み

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進数
論理演算
論理回路
ブール代数
半導体