プログラムはなぜ動くのか.

Slides:



Advertisements
Similar presentations
1 B10 CPU を作る 1 日目 解説 TA 高田正法
Advertisements

1B コンピュータとビット列データ.
1.コンピュータと情報処理 p.20 第1章第1節 3.ソフトウェア ソフトウェア 基本ソフトウェア
計算機システムⅡ 主記憶装置とALU,レジスタの制御
情報塾( ) CPUとメモリがどんなふうに動くのだろう。 レジスタやI/O プログラムの実行、マシン語。
データ構造とアルゴリズム 第10回 mallocとfree
Ibaraki Univ. Dept of Electrical & Electronic Eng.
情報工学基礎(改訂版) 岡崎裕之.
テープ(メモリ)と状態で何をするか決める
2012年度 計算機システム演習 第4回 白幡 晃一.
応用情報処理V 第1回 プログラミングとは何か 2004年9月27日.
情 報 技 術 基 礎 処理装置の構成と動作 D17kog706pr101 始.
『コンピュータ構成要素』 (C)Copyright, Toshiomi KOBAYASHI,
オリジナルなCPUの開発 指導教授:笠原 宏 05IE063 戸塚 雄太 05IE074 橋本 将平 05IE089 牧野 政道
計算機システム ハードウェア編(第3回) ~ ノイマン型コンピュータ ~.
演算回路 <例題> 問題:1+2=3を計算する アドレス 内容 データ プログラム 10 11 12 ・ 19 1 2 (答え) 20 21
Ibaraki Univ. Dept of Electrical & Electronic Eng.
  【事例演習6】  数式インタプリタ      解 説     “インタプリタの基本的な仕組み”.
応用情報処理V 第1回 プログラミングとは何か 2003年9月29日.
計算機基礎Ⅱ,Ⅲ (指導書 pp. 76~94) 改訂:佐竹 純二 (作成:岡本 吉央).
割り込み.
割り込み.
2016年度 プログラミングⅠ ~ 内部構造と動作の仕組み(1) ~.
Ibaraki Univ. Dept of Electrical & Electronic Eng.
トキのカタチ2016 電子工作(Arduino)講習
基本情報技術概論(第8回) 埼玉大学 理工学研究科 堀山 貴史
「ソフトウェアのしくみ」.
計算機入門I ハードウェア(1) 計算機のハードウェア構成 ~計算機のハードウェアとは何か~
コンピュータの原理 1E17M053-9 奈良 皐佑 1E17M070-7 師尾 直希        1E17M078-6 渡邊 惇.
コンピュータを知る 1E16M009-1 梅津たくみ 1E16M017-8 小沢あきら 1E16M035-0 柴田かいと
1.コンピュータと情報処理 p.18 第1章第1節 2.コンピュータの動作のしくみ CPUと論理回路
勉強会その3    2016/5/1 10 8分35秒 データの表現 演算.
情報リテラシー2014 part 5/5 (亀田担当分最終回)
コンピュータ系実験Ⅲ 「ワンチップマイコンの応用」 第1週目 アセンブリ言語講座
コンピュータの基本構成について 1E16M001-1 秋田梨紗 1E16M010-2 梅山桃香 1E16M013-3 大津智紗子
コンピュータ概論B ー ソフトウェアを中心に ー #02 システムソフトウェアと アプリケーションソフトウェア
プログラミング基礎a 第1回 ハードウェアとソフトウェア プログラミング総論 ~プログラミング言語とは~
ディジタル回路の設計と CADによるシステム設計
プログラミング基礎a 第1回 ハードウェアとソフトウェア プログラミング総論 ~プログラミング言語とは~
情報とコンピュータ 静岡大学工学部 安藤和敏
先週の復習: CPU が働く仕組み コンピュータの構造 pp 制御装置+演算装置+レジスタ 制御装置がなければ電卓と同様
本時の目標 コンピュータが情報を処理するしくみを知る。
コンピュータの仕組み 〜ハードウェア〜 1E15M009-3 伊藤佳樹 1E15M035-2 柴田将馬 1E15M061-1 花岡沙紀
C言語 はじめに 2016年 吉田研究室.
2010年度 情報科学序論 ~ 内部構造と動作の仕組み(2) ~.
坂井 修一 東京大学 大学院 情報理工学系研究科 電子情報学専攻 東京大学 工学部 電気工学科
明星大学 情報学科 2012年度前期     情報技術Ⅰ   第1回
コンピュータアーキテクチャ 第 2 回.
コンピュータアーキテクチャ 第 4 回.
情報基礎Ⅱ (第1回) 月曜4限 担当:北川 晃.
計算機アーキテクチャ1 (計算機構成論(再)) 第一回 計算機の歴史、基本構成、動作原理
2013年度 プログラミングⅠ ~ 内部構造と動作の仕組み(2) ~.
2017年度 プログラミングⅠ ~ 内部構造と動作の仕組み(1) ~.
コンピュータアーキテクチャ 第 3 回.
基本情報技術概論(第13回) 埼玉大学 理工学研究科 堀山 貴史
コンピュータアーキテクチャ 第 2 回.
コンピュータアーキテクチャ 第 5 回.
計算機アーキテクチャ1 (計算機構成論(再)) 第二回 命令の種類と形式
コンピュータアーキテクチャ 第 4 回.
第4回 CPUの役割と仕組み2 命令の解析と実行、クロック、レジスタ
情報コミュニケーション入門b 第2回 Part1 ハードウェアとソフトウェア
コンピュータアーキテクチャ 第 3 回.
コンピュータアーキテクチャ 第 5 回.
コンピュータの五大要素 入力装置 データ(プログラム)を取り込む 出力装置 処理結果のデータを外部に取り出す
プログラムの開発手順 1.プログラム設計(仕様の決定) 2.コーディング(ソースファイルの作成) 3.アセンブル(オブジェクトファイル
情報コミュニケーション入門b 第2回 Part1 ハードウェアとソフトウェア
2014年度 プログラミングⅠ ~ 内部構造と動作の仕組み(1) ~.
情報システム基盤学基礎1 コンピュータアーキテクチャ編
2008年度 情報科学序論 ~ 内部構造と動作の仕組み(2) ~.
明星大学 情報学科 2014年度前期     情報技術Ⅰ   第1回
Presentation transcript:

プログラムはなぜ動くのか

①プログラマにとってCPUとはなにか

プログラムって何? コンピュータに実行させる処理の順番を示すもの。 運動会やコンサートのプログラムのように、「何かを行う順番を示すもの」という意味。

プログラムの中には、何が含まれている? プログラムは、命令とデータの集合体になっています。 例えば、C言語のprintf(”こんにちは”);というプログラムは、printfが命令であり、”こんにちは”がデータです。

マシン語って何? CPUが直接解釈できる言語。 C言語やJAVAなどで記述されたプログラムは,最終的にマシン語に変換されます。

実行時のプログラムはどこにある? メモリー(メインメモリー)にコピーされてから実行されます。

メモリーのアドレスとは、何ですか? メモリー上で命令やデータが格納されている場所を示す値。 番地とも呼びます。 アドレス メモリーの内容 0100 0101 0102 0103 0104 アドレス 0105 0106 メモリーの内容 命令:0105番地の値をアキュムレータに格納せよ 命令:0106番地の値を汎用レジスタに格納せよ 命令:アキュムレータの値に汎用レジスタの値を加算せよ。 命令:アキュムレータの値をディスプレイに表示せよ 命令:プログラムを終了せよ。(OSに戻れ) データ:123 データ:456

コンピュータの構成要素の中で、プログラムを解釈・実行する装置は何ですか。 CPU。(CENTRAL PROCESSING UNIT) 中央処理装置のこと。 プログラムの命令にしたがって、データの演算やコンピュータ全体の制御を行う装置をCPUと呼びます。 多くのトランジスタから構成されたICという電子部品からなる。

プログラム実行のイメージ プログラムをコンパイルしてマシン語のEXEファイルに変換する。 CPUが、プログラムの内容を解釈、実行する。 プログラマが、C言語などの高水準言語でプログラムを記述 プログラムをコンパイルしてマシン語のEXEファイルに変換する。 プログラムの起動時に、EXEファイルのコピーがメモリー上に作成される。 CPUが、プログラムの内容を解釈、実行する。 #include<stdio.h> int main() {      int data[100]; 0110010001110010110010 0110010110001100101100

CPUを構成する4つの機能要素 制御装置 演算装置 クロック レジスタ1 レジスタ2 レジスタn ・

コンピュータの5大装置 制御装置 演算装置 入力・記憶・演算・出力の各装置が効率よく動作するようにコントロールする装置。 制御装置   入力・記憶・演算・出力の各装置が効率よく動作するようにコントロールする装置。 演算装置   記憶したデータをもとに命令に従って四則演算や比較判断を行う装置。 全商 3級

レジスタってなに? 処理対象となる命令やデータを格納する領域で一種のメモリーのようなもの。 1つのCPUの内部には種類によって異なるが20~100個ほどのレジスタがある。 プログラムはレジスタを対象として記述される。 16ビットPCや32ビットPCという時の「○○ビット」とは、レジスタの桁数のことを表す。

主なレジスタの種類とその役割 レジスタの種類 役割 アキュムレータ 演算を行うデータ及び演算後のデータを格納する。 フラグ・レジスタ 演算処理後のCPUの状態を格納する。 プログラム・カウンタ 次に実行する命令が格納されたメモリーのアドレスを格納する。 ベースレジスタ データ用のメモリー領域の先頭アドレスを格納する。 インデックスレジスタ ベースレジスタからの相対アドレスをかくのうする。 汎用レジスタ 任意のデータを格納する。 命令レジスタ 命令そのものを格納する。CPUが内部的に利用する。 スタック・レジスタ スタック領域の先頭アドレスを格納する。

プログラムの流れを決める プログラムカウンタ アドレス メモリーの内容 0100 0100 命令:0105番地の値をアキュムレータに格納せよ プログラムの流れ 0101 0101 命令:0106番地の値を汎用レジスタに格納せよ 0102 0102 命令:アキュムレータの値に汎用レジスタの値を加算せよ。 0103 0103 命令:アキュムレータの値をディスプレイに表示せよ 0104 0104 命令:プログラムを終了せよ。(OSに戻れ) 0105 データ:123 0106 データ:456 *実際には、1つの命令やデータが複数のアドレスにまたがって格納されている。

基本制御構造 順次構造 選択構造 繰り返し構造 順番に実行される処理を表現する構造 処理の流れは、順次、選択、繰り返しの3つの構造で表現できる。 順番に実行される処理を表現する構造 順次構造 状態によって処理を選択する構造 選択構造 何を、どのような条件の間繰り返すかを表現する構造 繰り返し構造

順次構造 処理1 処理2 処理3

選択構造 条件 偽 処理2 真 処理1

繰り返し構造 繰り返し条件 処理 偽 真

選択、繰り返しのしくみは? プログラムの中に条件分岐や繰り返しがある場合は、それらのマシン語命令が、プログラムカウンタの値を任意のアドレスに(+1でない値に)設定することになる。

CPUにできることは、いたって単純 種類 機能 データ転送命令 レジスタとメモリー、メモリーとメモリー、レジスタと周辺装置の間でデータを読み書きする。 演算命令 アキュムレータで算術演算、論理演算、比較演算、シフト演算を行う。 ジャンプ命令 条件分岐、繰り返し、無条件のジャンプを行う。 コール/リターン命令 関数を呼び出す/呼び出し元に戻る

②データを2進数でイメージしよう

32ビットは、何バイトですか? 8ビット=1バイトなので、32ビットは  32÷8=4バイトになります。

01011100 (01011100)2=4+8+16+64 =92 01011100という2進数は、10進数でいくつになりますか 2 2進数の各桁に重みに掛けた結果を足すことで10進数に変換できる。 01011100 2 0 1 3 4 5 6 7 (01011100)2=4+8+16+64 =92

00001111という2進数を、2桁左シフトすると、元の数を何倍したことになりますか。 2進数を1桁左シフトすると、元の値が2倍されます。2桁左シフトすると、4倍されます。 (00001111)2=1510 2倍 4倍 (00011110)2=3010 (00111100)2=6010

なぜコンピュータが情報を2進数で扱うのか? コンピュータ内部がICで構成されている。 ICには数本から数百本のピンがある。 ピンは直流電圧0Vか+5Vのどちらかの状態になっている。 つまり、ICのピン1本では、2つの状態しか表せない。

32ビットは、何バイトですか? 8ビット=1バイトなので、32ビットは  32÷8=4バイトになります。