• Tidak ada hasil yang ditemukan

説明用の簡易モデルに於ける計算の実行 予め

N/A
N/A
Protected

Academic year: 2024

Membagikan "説明用の簡易モデルに於ける計算の実行 予め"

Copied!
40
0
0

Teks penuh

(1)

説明用の簡易モデルに於ける計算の実行 予め

主記憶にプログラム・データを

• PC

に実行開始番地

(通常 0

番地)を それぞれ書き込んでおいて、

パルスを発生させると動作する。

プログラム・データ: bit

(機械語)

—電子計算機概論I 1—

(2)

説明用の簡易モデルの機械語

:

命令の符号化

(encoding)

命令 番号 符号化

stop 1 001

load 2 010

store 3 011

add 4 100

subtract 5 101

jump 6 110

jump flag 7 111

(3)

: 87 + 26

を計算する

機械語 アセンブリ 番地 二進 十六進 言語

0 00000 01000100 0x44 load A 1 00001 10000101 0x85 add B 2 00010 01100110 0x66 store C 3 00011 00100000 0x20 stop 0 4 00100 01010111 0x57 A 87

5 00101 00011010 0x1a B 26 6 00110 00000000 0x00 C 0

—電子計算機概論I 3—

(4)

アセンブリ言語

(assembly language):

機械語と一対一対応する符丁

(

ニーモニック

)

で プログラムを記述したもの アセンブラ

(assembler):

アセンブリ言語で記述されたプログラムを 機械語に直すプログラム

−→ CPU

のアーキテクチャによって

それぞれ異なる

(互換性がない)

(5)

: A

B

とを入れ替える

0 load A

1 store C 2 load B 3 store A 4 load C 5 store B 6 stop 0 7 A 15

8 B 5 9 C 0

—電子計算機概論I 5—

(6)

: C ← max { A, B }

0 load A

1 subtract B 2 jump flag M

3 load A

4 jump N

5 M load B

6 N store C

7 stop 0

8 A 5

9 B 7

10 C 0

(7)

: 15 × 3

を計算する

0 LOOP load B

1 subtract D

2 jump flag END

3 store B

4 load C

5 add A

6 store C

7 jump LOOP

8 END stop 0

9 A 15

10 B 3

11 C 0

12 D 1

—電子計算機概論I 7—

(8)

演習問題

:

簡易モデル上でのアセンブリ言語により、

自然数

n

に対して、

1

から

n

までの和を計算する プログラムを作成せよ。

実行前

(

入力

):

ラベル

A

の場所に 数値

n

が書き込まれている

実行後

(出力):

ラベル

C

の場所に 計算結果の数値が書き込まれている

−→

出来たら提出
(9)

演習問題

:

簡易モデル上でのアセンブリ言語により、

自然数

n

に対して、

1

から

n

までの和を計算する プログラムを作成せよ。

実行前

(

入力

):

ラベル

A

の場所に 数値

n

が書き込まれている

実行後

(出力):

ラベル

C

の場所に 計算結果の数値が書き込まれている

−→

出来たら提出

—電子計算機概論I 8—

(10)

プログラム

(

アルゴリズム

)

の評価

計算時間が速い

(=

計算ステップ数が少ない

)

· · ·

時間計算量

使用メモリ量が少ない

· · ·

空間計算量 最低限どれだけ必要か

−→ “問題の難しさ”

の評価

· · ·

計算の理論・計算量の理論
(11)

プログラム

(

アルゴリズム

)

の評価

計算時間が速い

(=

計算ステップ数が少ない

)

· · ·

時間計算量

使用メモリ量が少ない

· · ·

空間計算量 最低限どれだけ必要か

−→ “問題の難しさ”

の評価

· · ·

計算の理論・計算量の理論

—電子計算機概論I 9—

(12)

プログラム

(

アルゴリズム

)

の評価

計算時間が速い

(=

計算ステップ数が少ない

)

· · ·

時間計算量

使用メモリ量が少ない

· · ·

空間計算量 最低限どれだけ必要か

−→ “問題の難しさ”

の評価

· · ·

計算の理論・計算量の理論
(13)

演習問題

:

簡易モデル上でのアセンブリ言語により、

自然数

n

に対して、

1

から

n

までの和を計算する プログラムを作成せよ。

実行前

(入力):

ラベル

A

の場所に 数値

n

が書き込まれている

実行後

(

出力

):

ラベル

C

の場所に 計算結果の数値が書き込まれている

メモリ量:

12 words

ステップ数:

7n + 5 steps

まで絞れるようだ。

−→

挑戦者求む

—電子計算機概論I 10—

(14)

但し。初期のプログラム開発では、確かに

少しでも使用メモリが少ない

少しでも早い

(ステップ数が少ない)

プログラムが良いとされたが、

現在は、実際には、

移植性

(可搬性)・拡張性・部品性が高い

保守・管理コストが低い プログラムが求められている。

ハードウェアコストの低下

人的コストの

(相対的)

上昇
(15)

: S ← P

N1

i=0

A

i を計算する

0 LOOP load N

1 subtract D

2 jump flag END

3 store N

4 load SUM

5 ADD add A

6 store SUM

7 load ADD

8 add D

9 store ADD

10 jump LOOP

11 END stop 0

12 N 5

13 D 1

14 SUM 0

15 A 6

16 37

17 -23

18 25

19 -3

—電子計算機概論I 12—

(16)

: S ← P

N1

i=0

A

i を計算する

0 LOOP load N

1 subtract D

2 jump flag END

3 store N

4 load SUM

5 ADD add A

6 store SUM

7 load ADD

8 add D

9 store ADD

10 jump LOOP

11 END stop 0

12 N 5

13 D 1

14 SUM 0

15 A 6

16 37

17 -23

18 25

19 -3

(17)

: S ← P

N1

i=0

A

i を計算する

0 LOOP load N

1 subtract D

2 jump flag END

3 store N

4 load SUM

5 ADD add A

6 store SUM

7 load ADD

8 add D

9 store ADD

10 jump LOOP

11 END stop 0

12 N 5

13 D 1

14 SUM 0

15 A 6

16 37

17 -23

18 25

19 -3

—電子計算機概論I 12—

(18)

: S ← P

N1

i=0

A

i を計算する

0 LOOP load N

1 subtract D

2 jump flag END

3 store N

4 load SUM

5 ADD add A

6 store SUM

7 load ADD

8 add D

9 store ADD

10 jump LOOP

11 END stop 0

12 N 5

13 D 1

14 SUM 0

15 A 6

16 37

17 -23

18 25

19 -3

(19)

0 load 12 01001100 1 subtract 13 10101101 2 jump flag 11 11101011 3 store 12 01101100 4 load 14 01001110 5 add 15 10001111 6 store 14 01101110 7 load 5 01000101 8 add 13 10001101 9 store 5 01100101 10 jump 0 11000000 11 stop 0 00100000

12 5 13 1 14 0 15 6 16 37 17 -23 18 25 19 -3

PC: 00000= 0 Acc: ---= FR: -

—電子計算機概論I 13—

(20)

0 load 12 01001100 1 subtract 13 10101101 2 jump flag 11 11101011 3 store 12 01101100 4 load 14 01001110 5 add 15 10001111 6 store 14 01101110 7 load 5 01000101 8 add 13 10001101 9 store 5 01100101 10 jump 0 11000000 11 stop 0 00100000

12 4 13 1 14 0 15 6 16 37 17 -23 18 25 19 -3

PC: 00100= 4 Acc: 00000100= 4 FR: 0

(21)

0 load 12 01001100 1 subtract 13 10101101 2 jump flag 11 11101011 3 store 12 01101100 4 load 14 01001110 5 add 15 10001111 6 store 14 01101110 7 load 5 01000101 8 add 13 10001101 9 store 5 01100101 10 jump 0 11000000 11 stop 0 00100000

12 4 13 1 14 6 15 6 16 37 17 -23 18 25 19 -3

PC: 00111= 7 Acc: 00000110= 6 FR: 0

—電子計算機概論I 13—

(22)

0 load 12 01001100 1 subtract 13 10101101 2 jump flag 11 11101011 3 store 12 01101100 4 load 14 01001110 5 add 16 10010000 6 store 14 01101110 7 load 5 01000101 8 add 13 10001101 9 store 5 01100101 10 jump 0 11000000 11 stop 0 00100000

12 4 13 1 14 6 15 6 16 37 17 -23 18 25 19 -3

PC: 01010= 10 Acc: 10010000=-112 FR: 1

(23)

0 load 12 01001100 1 subtract 13 10101101 2 jump flag 11 11101011 3 store 12 01101100 4 load 14 01001110 5 add 16 10010000 6 store 14 01101110 7 load 5 01000101 8 add 13 10001101 9 store 5 01100101 10 jump 0 11000000 11 stop 0 00100000

12 4 13 1 14 6 15 6 16 37 17 -23 18 25 19 -3

PC: 00000= 0 Acc: 10010000=-112 FR: 1

—電子計算機概論I 13—

(24)

0 load 12 01001100 1 subtract 13 10101101 2 jump flag 11 11101011 3 store 12 01101100 4 load 14 01001110 5 add 16 10010000 6 store 14 01101110 7 load 5 01000101 8 add 13 10001101 9 store 5 01100101 10 jump 0 11000000 11 stop 0 00100000

12 3 13 1 14 6 15 6 16 37 17 -23 18 25 19 -3

PC: 00100= 4 Acc: 00000011= 3 FR: 0

(25)

0 load 12 01001100 1 subtract 13 10101101 2 jump flag 11 11101011 3 store 12 01101100 4 load 14 01001110 5 add 16 10010000 6 store 14 01101110 7 load 5 01000101 8 add 13 10001101 9 store 5 01100101 10 jump 0 11000000 11 stop 0 00100000

12 3 13 1 14 43 15 6 16 37 17 -23 18 25 19 -3

PC: 00111= 7 Acc: 00101011= 43 FR: 0

—電子計算機概論I 13—

(26)

こうして、

loop

2

巡目に

次の場所のデータを読むことに成功した。

以下略。

(27)

しかし、この方法では、

プログラム部分を書き換えてしまうため、

プログラミングし難い。

(

面倒で、間違い易く、読み難い。

)

−→

実機では、

指標レジスタ

(index register)

を使って 計算が行なえるように実装するのが普通。

—電子計算機概論I 15—

(28)

しかし、この方法では、

プログラム部分を書き換えてしまうため、

プログラミングし難い。

(

面倒で、間違い易く、読み難い。

)

−→

実機では、

指標レジスタ

(index register)

を使って 計算が行なえるように実装するのが普通。
(29)

指標レジスタ

(index register)

命令の番地部の解読の際に、

ここの値を加算して、

実際に読む番地

(

実効アドレス

)

とする

−→

「配列」の実装

—電子計算機概論I 16—

(30)

指標レジスタ

(index register)

Instruction Register

Instruction Decoder load T2

Accumulator

8 x D-flipflop 8D

T main memory

0 1 2

31 Address

Decoder

multiplexer S D

Index Register adder

(31)

ともかく、これが出来ると、例えば、

N

個のデータを別の場所にコピーする

プログラム

が書ける。

(レポート課題の例)

—電子計算機概論I 18—

(32)

更に

データを次々と書き込んで

メモリを一杯にする

自分自身の複製を別の場所に作る

更にその複製に実行を移して

自分自身の複製を繰返す などのプログラムも作れる。

(

但し、この簡易モデルでは、

機能限定なので書き難いかも

)

(33)

更に

データを次々と書き込んで

メモリを一杯にする

自分自身の複製を別の場所に作る

更にその複製に実行を移して

自分自身の複製を繰返す などのプログラムも作れる。

(

但し、この簡易モデルでは、

機能限定なので書き難いかも

)

—電子計算機概論I 19—

(34)

とは言え、

こんな簡易モデルでも結構色々出来るので、

遊んでみて下さい。

(35)

計算の理論

命令の実行

(=

「計算」) とは、

レジスタまたは主記憶の

現在の値

(状態)

に従って、

その値を変更

(書込)

すること であった。

—電子計算機概論I 21—

(36)

プログラム内蔵方式

(von Neumann

)

では、

プログラム・データを区別なくメモリ上に置いて いたが、やはり本質的に違うもの。

プログラム

:

一つの問題では固定

データ: 可変な入力

どんな

(有効な)

データ

(入力)

が来ても、

所定の出力を返すことが要請される。

(37)

プログラム内蔵方式

(von Neumann

)

では、

プログラム・データを区別なくメモリ上に置いて いたが、やはり本質的に違うもの。

プログラム

:

一つの問題では固定

データ: 可変な入力

どんな

(有効な)

データ

(入力)

が来ても、

所定の出力を返すことが要請される。

—電子計算機概論I 22—

(38)

或る問題の「計算が可能」

m

その計算を行なうプログラムが存在

計算機の機能

( =

「計算」のモデル

)

を決めて議論する

ここでは、代表的な「計算のモデル」を

幾つか紹介する。

(39)

或る問題の「計算が可能」

m

その計算を行なうプログラムが存在

計算機の機能

( =

「計算」のモデル

)

を決めて議論する

ここでは、代表的な「計算のモデル」を

幾つか紹介する。

—電子計算機概論I 23—

(40)

或る問題の「計算が可能」

m

その計算を行なうプログラムが存在

計算機の機能

( =

「計算」のモデル

)

を決めて議論する

ここでは、代表的な「計算のモデル」を

幾つか紹介する。

Referensi

Dokumen terkait

核酸成分の電気泳動解析 ○ 真核生物の核酸は大部分がRNAであり、特にリボソームRNA矢印が多量に含まれてい る。RNase処理によりRNAを特異的に分解してから電気泳動によりDNAの検出を行った。 ◆ 核酸溶液50 µLに対してRNaseを5 µg /5 µL加えて37℃, 1hr保温し、電気泳動を行った。 RNase 処理 - � RNase 処理

英会話1 English Conversation 1 浦田 葉子 東海林 明美 教養 1 選択 2年春 英会話1では日本語の補助輪を外し、できるだけ英語で考えて話す練習をします。日常会話から一歩進んで、国際交 流やビジネスの場で使うフォーマルな表現を学び、スピーチやプレゼンテーションに挑戦します。英会話1では共通教材 の『データベース3000』のLevel

本学級は,算数が「好き」「楽しい」と感じる児童が大半ではあるものの,それは主に計算練習の場面で 感じているようである。そのため,同じ計算の分野でも自分の考え方をノートにまとめることは難しいと 感じている児童が多い。また,友だちとペアで自分の考えを伝え合うことは概ねできているが,みんなの

14 (2)(6点) 1で調べたことを活用して考えてみましょう。 右のように補助線を書いて考えてみましょう! まずは三角形 OPQ と三角形 PQF について考えてみましょう。 底辺の長さと高さが等しい三角形は面積が等しいので 三角形 OPQ と三角形 PQF はともに面積が 5 ㎠です。 よって三角形 OPF の面積は 10 ㎠となります。 また、辺

2 知 思 態 ・ ・ ・ ・ 等分除や包含除の意味を理解し,除法の適用場面を式に表して,九九を用いて答えを求めることができる。 答えが九九にないわり算の答えを求めることができる。 わり算の計算の仕方を考え,説明することができる。 同じ数ずつに分ける計算のよさに気づき,わり算を日常生活上の問題の処理に役立てようとする。 小単元 時 ページ 目 標

13 8 43 ○整数の筆算の仕方をもとに小数 ÷1位数の筆算の仕方を考え,筆 算で計算することができる。 ・小数÷1位数の筆算 態度整数のわり算の筆算をもとに して,小数÷1 位数の筆算の仕 方を考えようとしている。《発言・ ノート》 知技小数÷1 位数の筆算の仕方 を理解し,筆算で計算することが できる。《ノート》 9 44

•設問 21.「より高度な〜」については、興味を持つ学生にとってはとても嬉しいことで す。ただ、同回生に聞いても、当時の講義レベル、考査レベルは適切だったと思うので、 今までの講義に高度な内容を追加(付加?)していくのは難しいはずです。 もし、可能ならば、そういう講義を単体で解説いただければ、とても嬉しいことだと思

関数を呼び出すことによって2つの変数の値を交換するためには、関数の引数として何を渡 せば良いか。 このようなことを考える為に、「変数」が計算機上で実際にどう扱われているかを改めて見てみよう。 12–1 ビットとバイト よく「計算機は0と1しか判らない」という言い方をするが、これは電気的には「OnかOffか」正確には HighかLowか