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

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

新規登録して質問してみよう
ただいま回答率
85.48%
基本情報技術者

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

Q&A

解決済

3回答

584閲覧

インデックスアドレス指定方式

sandalu

総合スコア4

基本情報技術者

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

0グッド

0クリップ

投稿2022/01/13 00:22

インデックスアドレス指定方式で配列を扱うときにインデックスレジスタとアドレス部の値をたして有効アドレスをだしますが
最初に配列を扱ったときにインデックスレジスタは何を基準にして値が決まるのですか?
(ベースレジスタはプログラムがメモリにロードされたときにプログラムの最初のアドレスがベースレジスタに入りますよね)

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

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

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

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

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

guest

回答3

0

ベストアンサー

概念的な話をすると、インデックスレジスタにはその名前の通り添え字を入れるので、配列AI番目A[I]を参照したいのなら、変数Iのメモリからインデックスレジスタに値をロードします。

投稿2022/01/13 02:20

otn

総合スコア84557

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

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

0

実際にアセンブラでコードを書いてみるとわかりますが、メモリ領域を確保すれば自ずとアドレスはわかりますんで、その値をレジスタに入れます

って、ラベルというのはご存知ですか。その値がアドレスです

投稿2022/01/13 01:06

編集2022/01/13 01:12
y_waiwai

総合スコア87774

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

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

0

最初に配列を扱ったときにインデックスレジスタは何を基準にして値が決まるのですか?

決まるのではなく、コードでセットして決める、のではないでしょうか。

投稿2022/01/13 00:30

maisumakun

総合スコア145184

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

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

sandalu

2022/01/13 00:49

回答ありがとうございます メモリのどの位置に配列のアドレスを置くのかをあらかじめプログラムで設定出来るということでしょうか?
ppaul

2022/01/13 01:24

- ベースレジスタはプログラムがメモリにロードされたときにプログラムの最初のアドレスがベースレジスタに入りますよね いいえ、違います。 CPUについて基本的なところで誤解があるようです。 どういう目的で知りたいのかを明確にしていただかないと、どのように回答してよいのか困ってしまいます。 CPUを理解するためには、互いにかなり異なる三つのものがあります。 1 概念的なCPU 2 機械命令(アセンブリ言語命令)から見えるCPU 3 実装されたCPUの内部処理 基本情報技術者試験に出てくるCPUは概念的なCPUなので、機械命令を理解するためには不足ですし、用語も違う部分があります。 基本情報技術者試験に通りたいなら[インデックスアドレス指定方式](https://teratail.com/questions/2jfl1ka2lp466w)、[インデックスレジスタについて](https://teratail.com/questions/idc1so3awu94rr)について考えるのは時間の無駄です。 ソフトウェア技術者としてどういう命令が出ているかを知りたいなら、Cで簡単なプログラムを作って-Sオプションをつけて出力されるアセンブリソースコードを見たほうが良く理解できるでしょう。 本当の意味で実装されたCPUの内部処理まで理解したいなら[11th Generation IntelR Core Processor Volume2](https://cdrdv2.intel.com/v1/dl/getContent/636761)とかを読んだ方がよくわかりますが、初心者の方には難しいでしょう。
sandalu

2022/01/13 04:19

申し訳ありません もうすぐ組み込み関係の学校に行く予定なので基本情報も先に勉強しておこうと思いました 学校が組み込み関係ということからCPU関係は細かく調べておいた方が良いとおもったのでこのような質問をさせてもらいました 他の方からの回答からもアセンブリという言語を理解しておかないとCPUの細かい動きは分からないのかなと感じました
ppaul

2022/01/13 08:45

ちゃんとした学校に行くのであれば、間違った知識を持った状態で始めるよりも何も知らない状態で始めたほうが良い場合もあります。 ご質問の文を読んでいると、あきらかに間違った方向に進んでいますので、今まで勉強したとご自身で思っていることを忘れてから学校で教えてもらった方が良いように思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問