質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
CPU

CPUは、コンピュータの中心となる処理装置(プロセッサ)で中央処理装置とも呼ばれています。プログラム演算や数値計算、その他の演算ユニットをコントロール。スマホやPCによって内蔵されているCPUは異なりますが、処理性能が早いほど良いとされています。

基本情報技術者

基本情報技術者とは、経済産業省が行う国家資格「情報処理技術者試験」の区分の一つです。試験ではプログラマーやシステムエンジニアなどIT業界で働くために必要とされる基礎知識や情報処理において論理的な考え方ができるか等が問われ、企業から高い評価を獲ることができ、IT業界の入門的な資格として人気があります。

応用情報技術者

応用情報技術者とは、経済産業省が行う国家資格「情報処理技術者試験」の区分の一つで、独立行政法人「情報処理推進機構」(IPA)が主催してます。ITエンジニアとして知識や技術の応用を有している証明になる資格です。基本情報処理技術者試験の上位にあり、平成21年の試験制度改正により新たに追加されました。

Q&A

解決済

1回答

1343閲覧

インデックスアドレス指定方式と相対アドレス指定方式の疑問点

Yuta_k

総合スコア1

CPU

CPUは、コンピュータの中心となる処理装置(プロセッサ)で中央処理装置とも呼ばれています。プログラム演算や数値計算、その他の演算ユニットをコントロール。スマホやPCによって内蔵されているCPUは異なりますが、処理性能が早いほど良いとされています。

基本情報技術者

基本情報技術者とは、経済産業省が行う国家資格「情報処理技術者試験」の区分の一つです。試験ではプログラマーやシステムエンジニアなどIT業界で働くために必要とされる基礎知識や情報処理において論理的な考え方ができるか等が問われ、企業から高い評価を獲ることができ、IT業界の入門的な資格として人気があります。

応用情報技術者

応用情報技術者とは、経済産業省が行う国家資格「情報処理技術者試験」の区分の一つで、独立行政法人「情報処理推進機構」(IPA)が主催してます。ITエンジニアとして知識や技術の応用を有している証明になる資格です。基本情報処理技術者試験の上位にあり、平成21年の試験制度改正により新たに追加されました。

0グッド

0クリップ

投稿2020/05/22 11:51

前提

自分は工学系の学生で情報技術者に関してはあまり知識はありません。しかし、情報系の資格を取りたいと考えているものです。

疑問点

CPU上のアドレス指定方式である
インデックスアドレス指定方式と相対アドレス指定方式について現在学んでおります。
そこで、以下の2つの疑問点が発生しました。

1.インデックスアドレス指定方式
「アドレス部の値にインデックスレジスタの値を加えて有効アドレスとする方式。
命令語は、命令部とアドレス部のほかにインデックス部からなり、インデックス部でレジスタ番号を指定します。配列や構造体(レコード)など、メモリ上で連続しているデータに同一処理を、繰り返し実行する場合、インデックスレジスタの値あるいはアドレス部の値を増やすだけで処理できます。」と以下の参考にしたWEBサイト上に記載しておりました。

ここで、インデックスレジスタの値をどれだけ増やすかという計算はどのように行なっているのかという疑問でした。(データのアドレスが規則的に並んでいるのでしょうか、どれだけ値を増やせば次のアドレスにアクセスできるのかわかっているのでしょうか)

2.相対アドレス指定方式
上記と同様のWEBサイトで相対アドレス指定方式について以下の記載がありました。
「プログラムカウンタの値と、オペランド部で指定した値の合計が目的の番地となる指定方式。」

ここで、プログラムカウンタのアドレスが有効アドレスより前にあることが前提として語られているように解釈したのですが、その解釈であっているのでしょうか。
つまり、常にプログラムカウンタのアドレスが有効アドレスより前にあるのでしょうか。
(主記憶装置でどのようにプログラムが配置されているのかはわかっていません。この質問は主記憶領域が命令領域、データ領域、スタック領域で構成されていることに関係があると自分勝手に思っています。)

初めての質問で、きちんと説明できているか不安でありますがお手柔らかによろしくお願いいたします。

参考にしたwebサイト

http://www.k-fix.jp/skill/it/02/page04.html

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

ここで、インデックスレジスタの値をどれだけ増やすかという計算はどのように行なっているのかという疑問でした。(データのアドレスが規則的に並んでいるのでしょうか、どれだけ値を増やせば次のアドレスにアクセスできるのかわかっているのでしょうか)

それは、プログラマが知っていて、レジスタに必要な数だけ加算します。
データ長が1なら +1するし、データ長が100なら +100します。

コンパイラが生成する場合はコンパイラが知っています。

ここで、プログラムカウンタのアドレスが有効アドレスより前にあることが前提として語られているように解釈したのですが、その解釈であっているのでしょうか。

いいえ。オペランドは負の数値もあり得ます。

投稿2020/05/22 12:04

otn

総合スコア84423

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Yuta_k

2020/05/24 15:20

初めての概念でしたので、理解するのに時間がかかりましたがアドバイスありがとうございました。 otnさんが回答されたあと、いろいろ自分なりに調べて自分の中の認識の違いを払拭することができました。 本当にありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問