2012-01-27 68 views
7

私はPattersonとHennessyによって本 'Computer Organization and Design'を読んでおり、MIPSに興味を持っています。ジャンプ命令のMIPS範囲

ジャンプ/分岐命令の範囲を見つけることに疑問があります。また、特定のアドレスに到達するために必要な分岐/ジャンプ命令の数を決定する際にも使用します。

これを計算する方法を説明できる人がいますか?つまり、特定の住所のPCを検討し、別の住所に行くために必要な分岐/ジャンプ命令の数を見つけることができますか?たとえば、PCが0x10001010の場合、ブランチ命令とジャンプ命令のアドレス範囲はどのくらいですか?

また、これらの情報をよりよく理解するのに役立つオンラインリソースや書籍を紹介してもらえますか?

+0

MIPSの取扱説明書を確認してください。命令がどのようにコード化されているかを説明します。 – m0skit0

答えて

9

以下はMIPS-32のすべてです。

ブランチB, BEQ, BNE, etc.命令は、16ビット符号付きワードオフセットフィールドを持ち、現在の位置から+/- 128kバイトのアドレスへの分岐を許可します。 Jジャンプ命令は、PCの最上位4ビットで指定された現在の256Mバイト領域内のアドレスを指定します:26 < < 2ビットです(これはではなく、相対アドレスです)。 4GBのアドレス空間の任意のアドレスに分岐するには、汎用レジスタに含まれるアドレスにジャンプするJR(ジャンプレジスタ)を使用します。

アドレスがどれだけ離れているかに応じて、任意のアドレスにジャンプするには、単一の分岐命令またはジャンプ命令、またはレジスタロードの後に​​JRが続きます。

MIPSプログラミングのベストブックはまだSee MIPS Runです。また、mips.com(登録が必要です)にMIPSアーキテクチャリファレンスマニュアルがあります。最も関連性の高いドキュメントは、MIPS32アーキテクチャのプログラマ用ボリュームII:MIPS32®命令セットです。

関連する問題