みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

「レジスタ」の由来は?「オペランド」とどう違うの?

CPUが計算する時に記憶しておく装置「レジスタ」というのがありますが、そもそも「レジスタ」の名前の由来は何なんでしょうか?

「レジスタ」(register)を日本語に訳すると「登録」という意味になりますが、この「登録」の意味と記憶装置(レジスタ)はどう関係あるのでしょうか?

さらに「レジスタ」と「オペランド」と「データ」は意味としては似ていると思いますが、どう違うのでしょうか?

わかりやすく教えてください。

よろしくお願いいたします。

投稿日時 - 2019-02-06 23:33:02

QNo.9585355

すぐに回答ほしいです

質問者が選んだベストアンサー

レジスタは、CPUの中にある小さな記憶領域で高速に動作。
オペランドは、プログラムで指定する演算や入出力する対象の
メモリまたはレジスタまたはIOポート。
データは、入れ物の種類に関係なく、記録されたり入出力されたりする情報は全てデータ。

ですかね。

投稿日時 - 2019-02-08 12:36:53

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.3

全く違いますが
8086の場合

レジスタ
CPU内の演算・コントロール用 記憶領域
各種命令ににより 演算 フラグを立てたりする


オペランド 命令 mov pop/push CALL JP ADD SUB など
オペコード 命令に対する 値 オペランドには それに対応した 1-3バイトの 命令コードがある

データ : データ

OSで支配されてないまたは ゆるい物だと
データ領域とプログラム領域 別で使ってる 両領域も 壁がないので書き換えたり実行されたりする

例えば データ領域 に 間違えて JP した場合
そこに書かれたデータ群をオペコードと認識し実行する
プログラムとして意味をなされていないので 暴走する

逆にプログラム領域にデータを書き込み それを実行した場合も
暴走する

ただし 自由に書き込みができるので 演算によって JP先を表す書き換えて 実行処理の前に違う処理を実行 という 手法 フックという手法もある


ただし そのような 実メモリに書き込む 書き込む処理時数クロック実際には必要なため
書き込んだ直後実行すると 意図しない 実行結果が得られ安定しないため
NOP などで 数サイクル待つ必要がある

投稿日時 - 2019-02-07 05:08:51

ANo.2

register(名詞)は、記録装置という意味があります。スーパーなどのレジも、同じregisterですね。

オペランド・・・命令の操作対象データ。レジスタか、メモリか、即値のどれか。
データ・・・非常に意味が広い。データをデータという言葉を使わず説明するのは難しいですね。

投稿日時 - 2019-02-07 00:25:28

ANo.1

メモリは「記憶する」
レジスタは「記録する」
です。
今思いつきました。
気にせずいきます。

レジスタは目に見えるハードウエア(顕微鏡でしか見えませんが)
一般的にメモリより高速だが複雑。

オペランドは命令の中に含まれる、引数のようなもの、命令にバリエーションを持たせる。目には見えない。(実際は電圧)

データは、ソフトウエアの内、命令でないもの。(実際は電圧)

ノイマン型コンピュータでは命令もデータも2進数で表されるため、命令を数値として扱ったり(あまり意味はない)、データを命令と見なして実行することも可能(当然暴走する)

投稿日時 - 2019-02-07 00:00:36

あなたにオススメの質問