1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

機械語のアドレス指定方式

Last updated at Posted at 2022-07-21

オペランド部のメモリのアドレス

プログラムカウンタから参照して命令を取り出し命令レジスタに記憶させる。
命令の中身は命令部とオペランド部が存在する。
何を(オペランド部)どうしろ(命令部)という記述になっている。
しかしオペランド部には必ずしもメモリのアドレスが入っているわけではない。
例えば対象アドレスが入っているメモリアドレスが入っているメモリアドレスが書かれてあることもある。
このように何らかの計算によってアドレスを求める方式をアドレス修飾(アドレス指定)

気づき

命令のオペランド部には必ずメモリのアドレスが入っているわけではない。
それを求める計算方法がいくつかあるのか。
確かレジスタの種類で計算方法が違うものがあったような。

即値アドレス指定方式

オペランド部に、対象となるデータそのものが入っている方式を即値アドレス指定方式という。
メモリへの参照は行われない。

気づき

どんな時に使われているのだろう?
メモリからCPUに行って作業すると思っていた。
この場合だとメモリを使わずに作業していることにならないのだろうか?
今後に注目。

直接アドレス

オペランド部に記載しているアドレスが、そのまま実行アドレスとして使える方式を直接アドレス指定方式という。

気づき

これは今までの命令レジスタがメモリから取ってくる。
今までの習ってきたことかな。
これは何となく馴染む。

関節アドレス指定方式

命令のオペランド部に対象のデータが入っているメモリアドレスをが記載されている。
それが実行アドレスになっている。

気づき

回りくどいな。
どうしてこういう2度手間をするのだろうか?
何らかの利用があると思う。これから期待だ。

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

オペランド部の値に、インデックス(指標)レジスタの値を加算することで実行アドレスを求める。
連続したアドレスを扱う時に用いるレジスタ。配列型のデータ処理などで使います。
インデックスレジスタ内のどの値を使用するかを示しています。
インデックス番号とオペランド部が記載されている。

気づき

これも期待だ。
とりあえず配列を扱うときはこの方式で実行アドレス(有効アドレス)を導き出すのか。

ベースアドレス指定方式

オペランド部の値に、ベースレジスタの値を加算することで実行アドレスを求める。
ベースレジスタはプログラムがメモリ上にロードされた時の、先端アドレスを記憶しているレジスタ。
プログラム先頭アドレスからの差分をオペランド部にで指定する。

https://medium-company.com/%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E6%8C%87%E5%AE%9A%E6%96%B9%E5%BC%8F/#i-7
これも見た。

気づき

説明でオペランド部に既に入っている値なんで50なのか
プログラム先頭アドレスからの差分とは何なのか?
それがわからない。
しかしペースレジスタの値とオペランド部の値を足して実行アドレスを導き出すことはわかった。

相対アドレス指定方式

オペランド部の値に、プログラムカウンタの値を加算することで実行アドレスを求める。

気づき

これはペースアドレス指定方式と似ている。
プログラムカウンタとペースレジスタの違いだ。
あと足すという観点からインデックスアドレス指定方式にも似ていると思っている。

気づき

いろんなアドレス指定方式を勉強した。
理解できないものはたくさんあったけどこれから頑張ろうと思う。(これしか言えない)
完全に理解できるその時を願って

出典 キタミ式イラストIT塾 基本情報技術者 令和03年

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?