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

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

N/A
N/A
Protected

Academic year: 2021

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

Copied!
36
0
0

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

全文

(1)

ca-8. 算術演算命令

1

金子邦彦

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

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

(2)

アウトライン

8-1 算術演算の例 8-2 算術演算命令

2

(3)

8-1 算術演算の例

3

(4)

足し算 add の例

4

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

a

100

をセット

a

200

を足しこむ

実行結果の例

(5)

演習

• Visual Studio を起動しなさい

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

5

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

(6)

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

6

6行追加

(7)

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

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

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

7

(8)

printf」の行をマウ

スでクリック ② 「デバッグ」「ブレー クポイントの設定/解除」

③ ブレークポイントが 設定されるので確認.

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

• Visual Studio で「 printf 」の行に,ブレークポイン トを設定しなさい

8

(9)

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

• 「 printf 」の行で,実行が中断することを確認しな

さい

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

9

「デバッグ」

「デバッグ開始」

printf」の行で実行が

中断している

(10)

• 「 printf 」の行で,実行が中断した状態で,変数の 値を表示させなさい.手順は次の通り.

10

①「デバッグ」

「ウインドウ」

「ローカル」

② 変数名と値の対応表が 表示される

(11)

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

11

「デバッグ」

「続行」

(12)

• 次のように書き替えて,同じ手順を繰り返しなさ い . そして,変数 a の値を確認しなさい

12

add 加算

(13)

• 次のように書き替えて,同じ手順を繰り返しなさ い . そして,変数 a の値を確認しなさい

13

sub 加算

(14)

• 次のように書き替えて,同じ手順を繰り返しなさ い . そして,変数 a の値を確認しなさい

14 imul 乗算

次ページに解説

(15)

15

アセンブリ言語の

プログラム ① a に 30 をセット

② a × 20 の結果を,

レジスタ

eax にセット

③ a にレジスタ eax の 値をセット

(16)

8-2 算術演算命令

16

(17)

算術演算命令とは

• 数に関する各種の演算を行う命令 加算

減算 乗算 除算

算術シフト など

17

(18)

プロセッサの中の算術演算ユニット

18

レジスタ

CPU

アドレスバス

データバス

メモリ

R/W

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

制御系

プログラムカウンタ

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

算術演算

ユニット

プログラム命令の解読

算術演算,論理 演算などの実行

データ等の記 憶,

スタックの管 理,

比較の結果の 保存

次に実行すべき プログラム命令の メモリアドレスを 記憶

(19)

Pentium 系列プロセッサでの算術演算の例

Visual C

++ アセンブリ言語

a = a + 100; add eax,64h

a = a – 100; sub eax,64h

a = a * 100; imul eax,dword ptr ds:[0C08130h],64h a = a / 100; mov ecx,64h

idiv eax,ecx

19

a

は整数の変数

(20)

Pentium 系列プロセッサでの算術演算の例

Visual C

++ アセンブリ言語

a = a + 100; add eax,64h

a = a – 100; sub eax,64h

a = a * 100; imul eax,dword ptr ds:[0C08130h],64h a = a / 100; mov ecx,64h

idiv eax,ecx

20

a

は整数の変数

(21)

加算

21

Visual C++

の プログラム

同じ意味

アセンブリ言語

(22)

減算

22

Visual C++

の プログラム

同じ意味

アセンブリ言語

(23)

乗算

23

Visual C++

の プログラム

同じ意味

アセンブリ言語

IMUL は独特.

第2オペランドと第3オペランドを 乗算して,第1オペランドに格納

(24)

除算

24

Visual C++

の プログラム

同じ意味

アセンブリ言語

Pentium 系列プロセッサで の除算は,割った余りを扱う ための準備が必要で,

プログラムが長くなる

(25)

• Visual Studio を起動しなさい

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

25

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

演習

(26)

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

26

4行追加

(27)

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

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

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

27

(28)

• Visual Studio で「 printf 」の行に,ブレークポイン トを設定しなさい

28

設定されていないときは,下のように操作して設定する

printf」の行をマウ

スでクリック ② 「デバッグ」「ブレー クポイントの設定/解除」

③ ブレークポイントが 設定されるので確認.

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

(29)

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

• 「 printf 」の行で,実行が中断することを確認しな

さい

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

29

「デバッグ」

「デバッグ開始」

printf」の行で実行が

中断している

(30)

• 「 printf 」の行で,実行が中断した状態で,変数の 値を表示させなさい.手順は次の通り.

30

①「デバッグ」

「ウインドウ」

「ローカル」

② 変数名と値の対応表が 表示される

(31)

• 「 printf 」の行で,実行が中断した状態で,逆アセ ンブルを行いなさい.

31

① 「デバッグ」「ウインド

ウ」「逆アセンブル」 ② 逆アセンブルの結果が表示される

(32)

• 逆アセンブルの結果で,「 a = a + 100 」のところ にある「 add 」を確認しなさい

32

(33)

• 次のように書き替えて,同じ手順を繰り返しなさ い .

• 逆アセンブルで「 a = a - 10 」のところの sub を確 認しなさい.

33

(34)

• 次のように書き替えて,同じ手順を繰り返しなさ い .

• 逆アセンブルで「 a = a * 40 」のところの imul を 確認しなさい.

34

(35)

• 次のように書き替えて,同じ手順を繰り返しなさ い .

• 逆アセンブルで「 a = a / 5 」のところの idiv を確 認しなさい.

35

(36)

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

36

「デバッグ」

「続行」

参照

関連したドキュメント

This paper introduces an on-line cooperative planning and design system and studies its educational application as an exercise tool for practicing public

YouTube では、パソコンの Chrome、Firefox、MS Edge、Opera ブラウザを使った 360° 動画の取り込みと 再生をサポートしています。また、YouTube アプリと YouTube Gaming

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

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

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

プロジェクト初年度となる平成 17 年には、排気量 7.7L の新短期規制対応のベースエンジ ンにおいて、後処理装置を装着しない場合に、 JIS 2 号軽油及び

検証の実施(第 3 章).. 東京都環境局

(近隣の建物等の扱い) (算定ガイドライン