• ベストアンサー

専用レジスタ 汎用レジスタ

タイトルそのままなんですけど、専用レジスタと汎用レジスタについて教えてください。CPUによってちがうんですか?Z80をつかってるんですけど…。

  • 科学
  • 回答数4
  • ありがとう数4

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

  • ベストアンサー
  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.1

Z80ですか。懐かしいですね。記憶を掘り起こして回答してみます。 「専用レジスタ」は、その名の通り、何かの役目専用でしか使えないレジスタのこと です。例えば、SP(スタックポインタ)や PC(プログラムカウンタ)なんかがそうです。 対して「汎用レジスタ」は、いろんなこと(ただ、値を記憶するだけとか、演算に 使うとか)に使えるレジスタです。AX や BX (だったか?)なんかがそうです。 対になる用語なので、「専用」じゃなければ「汎用」だと考えて差し支えないです。 CPUによって違うことは違うんですが、これは「専用レジスタだ」って定義付ける ことにはあまり意味が無いです。 例えば、最近の CPU は、数値(実数)演算プロセッサを内蔵しているものがほとんど ですが、実数演算用のレジスタを 専用/汎用 とわけても、たいして嬉しいことは ありません。 数値演算専用である、という言い方もできるし、実数を保持したり、演算の対象に したりできる、という言い方もできますし。 # 一応、計算機屋なんですが、「専門家」というには、あまりにも昔の記憶です (^^; # 何かの手がかりになれば幸いです

その他の回答 (3)

noname#21649
noname#21649
回答No.4

z80.懐かしいですね。子供の英語の教材に買いましたよ。マニュアルを。 覚えていいる範囲で sp.pc.a.c.fは専用レジスターです。それぞれ.スタック.プログラムカウンター.演算レジスター.ループカウンター.フラグレジスターとして使います。 z80は8080と上位互換のはずです。 pcを除くと汎用レジスターの固まりといえば6800や68000でしょうか.sc/mpでは.pレジスタが専用色が強いれじすたーですが.その他は汎用レジスターで.どのレジスターも演算に使えたと記憶していますが.当時コンピューター英語なんてまったく知らないで.子供に付き合わされたので全然自信がないです。 機械(プロセッサ)が変わるとレジスター名も機能も変わります。CPUという言葉は.インテル社系プロセッサメーカーの言葉なので.インテル社の製品に限ると.どのCPUもレジスターが存在するならばその機能は原則として同じであるといえるでしょう。

  • yo-kan-62
  • ベストアンサー率18% (18/98)
回答No.3

懐かしい言葉なので、 専用レジスターにはそのレジスター用に命令語が在る筈です。 SPであればpush/popみたいな。 汎用レジスターは演算に使用できるメモリー的な位置付けで、通常のメモリーと同じ命令が使えます。 大変簡単な説明ですみません。

  • ymmasayan
  • ベストアンサー率30% (2593/8599)
回答No.2

専用レジスタ…ある1つの目的だけに使われるレジスタ。 汎用レジスタ…いろんな目的に使うことの出来るレジスタ。        あるいは2つ以上の目的に使えるレジスタ。 例えば、インデックスレジスタと演算レジスタが別々なら専用レジスタで、演算レジスタにもインデックスレジスタにも使えるレジスタがあれば、汎用レジスタと呼ぶと言う風なことです. Z80ではほとんど汎用レジスタで、Aregだけが更に特別な機能を付加されていたんだったかな。(うろ覚え) 汎用レジスタと言う言葉にはどれを使っても同じことが出来ると言う気持ちがこめられているので、Aregは汎用レジスタには入れないような(万能レジスタ?)気もします。(自信なし)

関連するQ&A

  • 汎用レジスタについて

    組み込み開発初心者です。 C言語で汎用レジスタを直接さわることはできるのでしょうか?

  • 汎用レジスタ

    ルネサスのH8S/2000などで汎用レジスタをERと表記していますが、Eは何の頭文字でしょうか? 直接英訳するとGeneral Registerなのに、なぜGではなくてEなのかが解らなくて質問しました。御存知の方がいましたら回答をお願いします。

  • i386は本当に汎用レジスタ?

    素朴な疑問なので、「暇なときに回答ください」にしました WEBページを見ていると、i386アーキテクチャのAX,BX,CX,DX・・・が汎用レジスタであるという記述が目に付きます。 ここで、汎用レジスタを、まったく機能が同じで命令に直行性があるもの、と定義すると、i386のレジスタは汎用レジスタであるといえるのでしょうか? i386のプログラムでアセンブラで書かれたものがあるとして、ソースプログラムのたとえばAXとCXを入れ替えてアセンブルして出来たプログラムはもとのものとまったく同じ動作をするでしょうか? (システムコールの引数引渡しレジスタの役割が決まっているというのは別にして)。 ご先祖様の8086は違ったのは覚えているのですが(たとえばSIとDIの機能が違う)。i386になって、本当に直交した命令体系になったのか疑問に思っています。

  • 汎用レジスタの値をトレースする?

    プログラムを実行したときの汎用レジスタの値をトレースする

  • 汎用レジスタのワーキングビットテスト

    アセンブラ初心者です。 汎用レジスタR0からR15をワーキングビットテストするアセンブラソースを書いているのですが実行すると暴走します。 汎用レジスタR0からR15をワーキングビットテストする場合、レジスタデータを一旦どこかに保存してから行うものなのでしょうか? また、R0がインデックスレジスタ(意味が良く分かってません)、R15がスタックポインタが格納されていますがこれらのレジスタも値を一旦どこかに退避しておけばテストを行ってもよいものなのでしょうか?

  • ハイパースレディングのレジスタについて

    ハイパースレディングのレジスタについて ハイパースレッデイングのCPUで2つのスレッドA,Bを動かすとする。 このときAの実行状態を示す汎用レジスタやプログラムカウンタと     Bの実行状態を示す汎用レジスタやプログラムカウンタの扱いはどうなのでしょうか。 次の2つの方法が考えられる。 (1) レジスタのロード、実行、レジスタのセーブを繰り返す方法。     CPU内に高速なメモリを持ち、実行前にレジスタに値をロードして、命令を実行して、レジスタの値を保存を繰り返して、A,Bのスレッドを実行する方法。 (2) A用のレジスタとB用のレジスタを2組用意して、相互に切り替えながら実行する方法。     Aを実行するときはA用のレジスタを使用して、Bを実行するときはB用のレジスタを使用する方法。 の2つが考えられるが、それとも他の方法があるのでしょうか。 それに関連して、1度に実行する機械語命令の個数はいくつなのでしょうか。 スレッドAの機械語命令を実行して、切り替えてBの機械語命令を実行するときに、 Aの1命令を実行してから、Bの1命令を実行する。1命令毎に切り替えるのでしょうか、 それともAの数個の命令を実行してから、Bの数個の命令を実行するのでしょうか。 このときスレッドを切り替える際に1度に実行する機械語命令の個数はいくつでしょうか。 ご存知の方がおりましたら、教えて下さい。

  • レジスタマップって何ですか?

    拡張カードで、 レジスタマップというのはカードのRAM上の領域を表しているのですか? レジスタと聞くとCPUのレジスタを思い浮かぶのですが、、、 よろしくおねがいします。。

  • レジスタの数

    高専の授業の宿題で、「CPUのレジスタの数を調べる」という宿題が出たのですが、どこを探してもそれらしき資料が見当たりません。 intelでもAMDでもその他メーカーのCPUのレジスタの数が載っているところを教えてください。

  • レジスタの数

    32ビットプロセッサで汎用レジスタの数は32語程度ですよね?? なぜ、語数をこれ以上に増やすしたり、これ以下に減らしたりすると性能が低下するのですか?? それぞれおしえてください!

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

    CPUが計算する時に記憶しておく装置「レジスタ」というのがありますが、そもそも「レジスタ」の名前の由来は何なんでしょうか? 「レジスタ」(register)を日本語に訳すると「登録」という意味になりますが、この「登録」の意味と記憶装置(レジスタ)はどう関係あるのでしょうか? さらに「レジスタ」と「オペランド」と「データ」は意味としては似ていると思いますが、どう違うのでしょうか? わかりやすく教えてください。 よろしくお願いいたします。