• 検索結果がありません。

6-2 Visual Studio

N/A
N/A
Protected

Academic year: 2021

シェア "6-2 Visual Studio "

Copied!
41
0
0

読み込み中.... (全文を見る)

全文

(1)

ca-6.

プログラムカウンタ

1

金子邦彦

(コンピュータ・アーキテクチャ演習)

URL: https://www.kkaneko.jp/cc/ca/index.html

(2)

アウトライン

6-1

プログラムカウンタの振る舞い

6-2 Visual Studio

でプログラムカウンタの表示

6-3

命令実行サイクル

2

(3)

6-1

プログラムカウンタの振 る舞い

3

(4)

6-1

プログラムカウンタとは

プログラムカウンタには,次に実行すべき命令の アドレスが入っている

4

(5)

5

分岐

変数

age

の値が

12

以上の ときの経路

変数

age

の値が

12

未満の ときの経路

(6)

6

◇ 変数 分岐age 値が12以上な ら 薄青の経路

◇ 12未満なら  薄赤の経路

現在実行中

プログラム カウンタ

(7)

7

◇ 変数 分岐age 値が12以上な ら 薄青の経路

◇ 12未満なら  薄赤の経路

現在実行中プログラム カウンタ

(8)

8

分岐

◇ 変数 age 値が12以上な ら 薄青の経路

◇ 12未満なら  薄赤の経路

プログラム カウンタ 現在実行中

(9)

9

◇ 変数 分岐age 値が12以上な ら 薄青の経路

◇ 12未満なら  薄赤の経路

age

の値が12以上のとき

プログラム 現在実行中 カウンタ

(10)

10

◇ 変数 分岐age 値が12以上な ら 薄青の経路

◇ 12未満なら  薄赤の経路

age

の値が12以上のとき

現在実行中

(11)

11

◇ 変数 分岐age 値が12以上な ら 薄青の経路

◇ 12未満なら  薄赤の経路

ジャンプ

age

の値が12以上のとき

プログラム カウンタ

(12)

12

◇ 変数 分岐age 値が12以上な ら 薄青の経路

◇ 12未満なら

 薄赤の経路 合流

age

の値が12以上のとき

プログラム 現在実行中カウンタ

(13)

13

◇ 変数 分岐age 値が12以上な ら 薄青の経路

◇ 12未満なら

 薄赤の経路 合流

age

の値が12未満のとき

プログラム カウンタ 現在実行中

(14)

14

◇ 変数 分岐age 値が12以上な ら 薄青の経路

◇ 12未満なら

 薄赤の経路 合流

age

の値が12未満のとき

プログラム 現在実行中 カウンタ

(15)

15

◇ 変数 分岐age 値が12以上な ら 薄青の経路

◇ 12未満なら

 薄赤の経路 合流

age

の値が12未満のとき

プログラム カウンタ 現在実行中

(16)

16

◇ 変数 分岐age 値が12以上な ら 薄青の経路

◇ 12未満なら

 薄赤の経路 合流

age

の値が12未満のとき

プログラム カウンタ

現在実行中

(17)

17

分岐

◇ 変数 age 値が12以上な ら 薄青の経路

◇ 12未満なら

 薄赤の経路 合流

age

の値が12未満のとき

プログラム 現在実行中カウンタ

(18)

6-2 Visual Studio

プログラムカウンタの表示

18

(19)

プログラムカウンタの表示操作

19

デバッガーを起動済みで,

プログラムの実行が中断し

ているときに・・・ → 「ウインドウ」→「レジスタ」① 「デバッグ」

② レジスタが表示される

(20)

• Visual Studio

を起動しなさい

• Visual Studio

で,

Win32

コンソールアプリケー ション用プロジェクトを新規作成しなさい

20

プロジェクトの「名前」は何でもよい

演習

(21)

• Visual Studio

のエディタを使って,ソースファイ ルを編集しなさい

追加

21

(22)

ビルドしなさい.ビルドのあと「1 正常終了,

 

   

0 失敗」の表示を確認しなさい

→  

表示されなければ,プログラムのミスを自分 で確認し,修正して,ビルドをやり直す

22

(23)

赤丸がブレークポイント の印

• Visual Studio

で「

age = 20;

」の行に,ブレ ークポイントを設定しなさい

(24)

• Visual Studio

で,デバッガーを起動しなさい.

age = 20;

」の行で,実行が中断することを確

認しなさい

あとで使うので,中断したままにしておくこと

24

「デバッグ」

→ 「デバッグ開始」

age = 20;

」の行で実行が 中断している

黄色の矢印

(25)

age = 20;

」の行で,実行が中断した状態で,

逆アセンブルを行いなさい.

25

① 「デバッグ」→ 「ウインド ウ」→「逆アセンブル

② 逆アセンブルの結果が表示され

(26)

age = 20;

」の行で,実行が中断した状態で,

レジスタの中身を表示させなさい.手順は次の通 り.

26

デバッガーを起動済みで,

プログラムの実行が中断し ているときに・・・

① 「デバッグ」

→ 「ウインドウ」→「レジス タ」

② レジスタが表示 される .

EIP に注目

EIP

はプログラムカウンタ

(27)

ステップオーバーの操作を1回ずつ行いながら,

レジスタウインドウの中の

  EIP

の変化を確認し なさい.

27

「デバッグ」

→ 「ステップオーバー」

(あるいは F10 キー)

(28)

28

EIP

プログラムカウンタ

アセンブリ言語の中で:

 赤丸: ブレークポイント

 黄色矢印: プログラムカウンタ       

(29)

最後に,プログラム実行の再開の操作を行いなさ い.これで,デバッガーが終了する.

 

29

「デバッグ」

→ 「続行」

(30)

演習

  

age = 20;

」の行を「

age = 10;

」に変えて,今 の手順を繰り返しなさい.

ジャンプの様子が変わるので確認しなさい

30

(31)

演習

  

次のプログラムでプログラムカウンタの値の変化 の様子を確認しなさい.

31

(32)

5-3

命令実行サイクル

32

(33)

Visual C++

言語とアセンブリ言語

33

Visual C++

プログラム アセンブリ言語

いまから,この3行を図解で説明

(34)

プロセッサの仕組みの概要 34

算術演算ユニット

CPU

アドレスバスデータバス

メモリ

R/W

命令レジスタ 命令デコーダ

制御系

プログラムカウンタ

(インストラクションポイン タ)

レジスタ

プログラム命令の解読 算術演算,論理

演算などの実行

データ等の記 憶,スタックの管 理,比較の結果の

保存 次に実行すべき

プログラム命令の メモリアドレスを記憶

(35)

算術演算ユニット

Arithmetic and Logic Unit

CPU

アドレスバス

データバス

メモリ

R/W

命令レジスタ

Instruction Register

命令デコーダ

Instruction Decoder

制御系

Control Unit

プログラムカウ ンタ

Program Counter

+

命令長 レジスタ

Registers

x

y

を足して

z

に入れたい ※ この図では,メモリ の1マスは4バイト

(36)

算術演算ユニット

Arithmetic and Logic Unit

CPU

アドレスバス

データバス

レジスタ Registers

メモリ

(37)

アドレス

メモリをオンに

レジスタ に格納

(38)

アドレス

メモリをオンに

レジスタ に格納

データが転送された

(39)

アドレス

メモリをオンに

2

つのデータが 算術演算ユニットに

与えられる

(40)

結果がレジスタに入る

(41)

アドレス

メモリをオンに.

データを書き込む

参照

関連したドキュメント

The passway is… define pad opt2 of meniu prompt 'Display Printing’ ….on pad opt2 of meniu activate popup rat… define bar 3 of rat prompt 'Results Selection'…on bar 3 of rat

注意: Dell Factory Image Restore を使用す ると、ハードディスクドライブのすべてのデ

いかなる保証をするものではありま せん。 BEHRINGER, KLARK TEKNIK, MIDAS, BUGERA , および TURBOSOUND は、 MUSIC GROUP ( MUSIC-GROUP.COM )

Bluetooth® Low Energy プロトコルスタック GUI ツールは、Microsoft Visual Studio 2012 でビルドされた C++アプリケーションです。GUI

Visual Studio 2008、または Visual Studio 2010 で開発した要素モデルを Visual Studio

ダウンロードしたファイルを 解凍して自動作成ツール (StartPro2018.exe) を起動します。.

6-4 LIFEの画面がInternet Exproler(IE)で開かれるが、Edgeで利用したい 6-5 Windows 7でLIFEを利用したい..

平成 28 年 3 月 31 日現在のご利用者は 28 名となり、新規 2 名と転居による廃 止が 1 件ありました。年間を通し、 20 名定員で 1