ca-2. メモリとアドレス,ダンプリスト

1K Views

December 23, 21

スライド概要

コンピュータ・アーキテクチャ演習
URL: https://www.kkaneko.jp/cc/ca/index.html

profile-image

金子邦彦(かねこくにひこ) 福山大学・工学部・教授 ホームページ: https://www.kkaneko.jp/index.html 金子邦彦 YouTube チャンネル: https://youtube.com/user/kunihikokaneko

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

ca-2. メモリとアドレス, ダンプリスト (コンピュータ・アーキテクチャ演習) URL: https://www.kkaneko.jp/cc/ca/index.html 金子邦彦 1

2.

アウトライン 2-1 メモリとアドレス 2-2 メモリへの操作 2-3 16進数の表記 2-4 ダンプリスト 2

3.

2-1 メモリとアドレス 3

4.

メモリとは • メモリは,データの記憶を行うチップ • データを覚えさせたり(書き込み),取り 出したり(読み出し)の機能がある 4

5.

メモリとアドレス • メモリはバイト(8ビット)単位に区切ら れている • 各バイトには0から始まる通し番号が付け られている。これをアドレスという(番地 ともいう) メモリ内のデータは 01 00 00 00 02 00 00 00 03 00 0 1 2 3 4 5 6 7 8 9 アドレス 5

6.

メモリアドレス • メモリアドレスは,読み書きすべきデータの「場 所」を示す (例) 0065FDF0 (16進) → メモリの先頭から0065FDF0 (16進数)番目 という意味 • メモリ内のデジタルデータは,8ビットずつ区切 られて,メモリアドレスが付けられている 00101110100101001010010101001 8ビット 8ビット 8ビット

7.

メモリアドレスは,ふつう16進数表記する 16進数 実行結果の例

8.

なぜ16進数なのか • メモリアドレスそのものもデジタル(「0」, 「1」の列) • といって,メモリアドレスを,「0」,「1」の 並びで書くのは,長すぎて人間にとって分かりづ らい (例) 00101110100101001010010101001 そこで,「16進数」を使う

9.

2-2 メモリへの操作 9

10.

メモリへの操作 • 読み出し • 書き込み 読み出したい データのアドレス データ メモリ 書き込みたい データのアドレス とデータそのもの メモリ 10

11.

読み出し アドレス アドレス アドレス アドレス アドレス アドレス アドレス アドレス アドレス 0 1 2 3 4 5 6 7 8 ?? ?? ?? ?? ?? ?? ?? ?? ?? アドレス4番地,5番地 から2バイト分 読み出すとき メモリの値は変化 しない メモリの各区画は1バイト (16進数で2桁) 11

12.

書き込み アドレス アドレス アドレス アドレス アドレス アドレス アドレス アドレス アドレス 0 1 2 3 4 5 6 7 8 ?? ?? ?? ?? ?? ?? ?? ?? ?? アドレス6番地, 7番地に 「0400」を 書き込むと メモリの各区画は1バイト (16進数で2桁) ?? ?? ?? ?? ?? ?? 0 4 0 0 ?? 前の値は消える 12

13.

2-3 16進数の表記 13

14.

16進数の表記 • 4000 「4000」と書いただけでは, 10進数なのか 16進数なのか分からない 14

15.

2-3 16進数の表記 • 4000h 10進数 16進数 末尾に h を付けたり。 0x4000 16384 同じ値 何も付けない (主にアセンブリ言語での習慣) 頭に 0x を付ける。 (主にC言語での習慣) 16進数であることを示す目印 15

16.

2-4 ダンプリスト 16

17.

メモリとアドレス • メモリはバイト(8ビット)単位に区切ら れている • 各バイトには0から始まる通し番号が付け られている。これをアドレスという(番地 ともいう) メモリ内のデータは 01 00 00 00 02 00 00 00 03 00 0 1 2 3 4 5 6 アドレス 7 8 9 17

18.

ダンプリストの例 アドレス メモリの中身 バイト単位で区切られて表示. 表示は16進数 18

19.

ダンプリストの例 アドレスは 0x002f8130 アドレスは 0x002f8131 アドレスは 0x002f8132 19

20.

確認クイズ このアドレス は? アドレス このアドレス は? メモリの中身がバイト単位 で区切られて表示 メモリの中身 を文字に置き換え て表示 20

21.

確認クイズの答え 0x002F814C 左のアドレス 表示で分かる 0x002F8150 これは 0x002F814C に 4 足した値 4つ右隣 り アドレス メモリの中身がバイト単位 で区切られて表示 メモリの中身 を文字に置き換え て表示 21

22.

実行型ファイルのダンプリストの例 アドレス ビルド ソースファイル ※ C++言語 実行型ファイル ※ マシン語 22