情報科学序論

2010年度
情報科学序論
~ 内部構造と動作の仕組み(2) ~
担当教員: 幸山 直人
2010年度 情報科学序論
機械語とアセンブラ言語
高級言語
(ソフトウェア)
C言語など
機械語
(ソフトウェア)
コンピュータ
(ハードウェア)
・最終的には、機械語に変換される
・人間が扱いやすい
1対1
アセンブラ言語
(ソフトウェア)
・コンピュータの本質的命令
・人間に比較的わかりやすい
2010年度 情報科学序論
COMETⅡとCASLⅡ

COMETⅡ(コンピュータ)
COMETⅡは、実在しないコンピュータだが、コンピュータと
しての五大機能を備えた仮想のコンピュータである。

CASLⅡ(アセンブラ言語)
CASLⅡは、COMETⅡ上で動作する機械語に対応するア
センブラ言語である。
注意:CASLⅡの仕様書は、情報処理技術者試験を実施いている情報処理推進機構
から入手できるほか、情報処理技術者試験の「案内書・願書」の巻末に記載されている。
また、CASLⅡのプログラミングを体験できるシミュレータも提供されている。
その他、多くの有志によってCASLⅡを学習できる教材がインターネット上で提供され
ているので、必要に応じて学習してもらいたい。
2010年度 情報科学序論
COMETⅡの主な仕様
1語は16ビット
 主記憶の容量は65536語で0~65535番地
 逐次制御
 汎用レジスタは8つ(GR0~GR7)
 その他のレジスタとして、スタックポインタ(SP)
とプログラムレジスタ(PR)
 演算結果により設定されるフラグレジスタ(FR)

OF
SF
ZF
2010年度 情報科学序論
機械語の構造
出力先(レジスタ)
OP
回路指定



GR
XR
Adr
入力先(レジスタまたは実効アドレス)
OP(8ビット):命令コード(回路指定)
GR(4ビット):レジスタ(出力)
XR(4ビット):レジスタ(入力)
Adr=0 ⇒ GR[XR]の値
Adr≠0かつXR=0 ⇒ 「Adr+0」が実効アドレス
Adr≠0かつXR≠0 ⇒ 「Adr+(GR[XR])」が実効アドレス

Adr(16ビット):主記憶の番地(入力)
2010年度 情報科学序論
アセンブラ言語(機械語命令)の例
■レジスタGR1の値にレジスタGR2の値を加える
ラベル
ADDA
命令コード
オペランド
ADDA
GR1,GR2
1
2
0
■レジスタGR1の値に実効アドレス(DATA)の値(#01FA)を加える
ラベル
DATA
ADDA
命令コード
ADDA
DC
1
0
オペランド
GR1,DATA
#01FA
実効アドレス(DATA)
2010年度 情報科学序論
アセンブラ言語のプログラミングの例
■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
命令領域
データ領域
2010年度 情報科学序論
プログラムの実行
アドレス
#0000
値
アドレス
****
#0038
~
値
****
~
#002D
****
#002E
PUSH
#002F
****
#0030
LD
#0031
#0100
#0032
ADDA
#0033
#0101
#0034
ST
#0035
#0102
#0036
POP
#0037
****
#00FF
0
*
****
#0100(DATA1) #0001
#0101(DATA2) #0002
0
0
0
0
#0102(ANS)
****(実行後、#0003が入る)
#0103
****
~
#FFFF
0
0
****
0
*
まず、OSによってプログラムが
メモリ上に書き込まれる