メモリ参照命令とは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > ウィキペディア小見出し辞書 > メモリ参照命令の意味・解説 

メモリ参照命令

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/04/21 02:01 UTC 版)

データゼネラルNova」の記事における「メモリ参照命令」の解説

Nova命令セットには、メモリ内容アキュムレータ転送する命令とその逆の命令ペア2つ制御転送命令、およびメモリ・ロケーションの内容テストする2つ命令含まれている。 すべてのメモリ参照命令には、8ビットアドレス・フィールドと、メモリ・アドレッシングモード指定する2ビットフィールド含まれていた。 4つモード次のとおりである: Mode 0 - 絶対アドレッシング命令アドレス・フィールド内容左側ゼロ埋められ、ターゲット・アドレスとして使用されます。 Mode 1 - 相対アドレッシング命令アドレス・フィールド内容は、左に符号拡張され、プログラムカウンタ現在値命令実行されるまでに次の命令指します)に加算するその結果がターゲット・アドレスとして使用されるMode 2 - インデックス・アドレッシング。 命令アドレス・フィールド内容が、左に符号拡張され、アキュムレータ2の現在値加算されるその結果がターゲット・アドレスとして使用されるMode 3 - インデックス・アドレッシング。 命令アドレス・フィールド内容が、左に符号拡張され、アキュムレータ3の現在値加算されるその結果がターゲット・アドレスとして使用される明らかにMode 0は、8ビットアドレス・フィールドがあるため、最初256メモリ語だけをアドレス指定できた。 メモリのこの部分は「ページ・ゼロ」と呼ばれていた。 ページ・ゼロのメモリ・ワードは、利用可能な数が少ないため、Novaアセンブリ言語プログラマにとって貴重なものと考えられていた。ページ・ゼロの場所だけが、インデックスレジスタとして使用するためにアキュムレータ2や3を縛る必要のあるインデックスアドレスに頼ることなくプログラムのどこからでもアドレス指定することができた。アセンブリ言語では、".ZREL" ディレクティブにより、アセンブラはそれに続く命令とデータ語をページ・ゼロに配置し、".NREL" ディレクティブにより、それに続く命令とデータ語を「通常のメモリ配置した。後のNovaモデルでは、アドレス・フィールド拡張した命令追加され、この問題克服した(性能的にペナルティがある)。 アセンブラは、Mode 1の相対オフセット自動的に計算するが、ソース明示的に書き込むことも可能であった。 メモリ参照命令が .NREL 空間メモリアドレス参照しているがモード指定子がない場合Mode 1が想定されアセンブラ現在の命令参照されている位置との間のオフセット計算し、これを命令アドレス・フィールド配置した結果として得られる値が8ビットフィールドに収まる場合)。 2つロードおよびストア命令次のとおりである: LDA - メモリ位置内容指定されアキュムレータロードする STA - 指定されアキュムレータ内容メモリ位置格納する これらの命令には両方とも「間接(indirect)」ビット含まれていた。 このビットセットされている場合アセンブリ言語ではオペコードに '@'を追加することで行われる)、ターゲット・アドレスの内容メモリ・アドレスそのものであると仮定されロードまたはストアを行うためにそのアドレス参照される2つ制御転送命令次のとおりである: JMP - 指定されメモリ位置制御を移す JSR("jump subroutine")- JMP命令と同じであるが、ジャンプする前にリターン・アドレスJSR命令に続く命令)を追加アキュムレータ3にロードする ロードおよびストア命令同様にジャンプ命令には間接ビット含まれており、同様にアセンブリでは '@' 文字指定されている。 間接ジャンプ場合プロセッサジャンプ先の内容取得し、その値をジャンプ先のメモリアドレスとして使用する。 ただし、ロードおよびストア命令とは異なり、間接アドレス最上位ビットセットされている場合は、さらに1サイクルの間接ジャンプ実行されるNova 3より前のNovaシリーズプロセッサでは、間接アドレス回数制限はなかった。自分自身参照する間接アドレスは、命令完了することなく無限に間接アドレッシングループが発生する。 (この状態では、フロントパネルSTOPスイッチ押しても何もしないので、ユーザにとっては不安になるかもしれなかった。ループ解除するには、機械リセットする必要があった。) 2つのメモリテスト命令次のとおりである: ISZ - メモリ位置インクリメントし、結果ゼロ場合次の命令スキップする DSZ - メモリ位置デクリメントし、結果ゼロ場合次の命令スキップする ロードおよびストア命令場合同様に、1レベルの間接アドレス指定実行する間接ビットがあった。 これらの命令は、磁気コアメモリ搭載したNovaでは、メモリ基板自体の内で命令実行されるという点で奇妙なのだった当時メモリ基板には、磁気コアメモリ内在する破壊的な読み出し問題解決するための「ライトバック回路搭載されていた。 しかし、ライトバック機構には、ミニ演算ユニット含まれており、これはプロセッサいくつかの目的使用していた。 ISZ命令とDSZ命令では、読み取られメモリ位置からライトバックが行われるまでの間にインクリメントまたはデクリメントが行われ、CPUは単に結果ゼロか非ゼロかの通知を待つだけであった。 これらの命令は、アキュムレータ拘束することなくメモリ位置をループカウンタとして使用できるため便利であったが、同等算術命令よりも処理速度遅くなった。 メモリ参照命令の例: LDA 1,COUNT COUNTというラベルのメモリ・ロケーションの内容アキュムレータ1に転送するCOUNTが .NREL 空間にあると仮定すると、この命令次のうになる: LDA 1,1,(COUNT-(.+1)) ここで、'.' はLDA命令位置を表す。 JSR@ 0,17 ページ・ゼロ空間ロケーション17内容指定されメモリアドレス間接的にジャンプしリターンアドレスアキュムレータ3に格納する。 これは、初期NovaモデルでRDOSシステムコールを行うための標準的な方法で、アセンブリ言語ニーモニック ".SYSTM" はこれに変換される。 JMP 0,3 アキュムレータ3にアドレス格納されているメモリ位置ジャンプするJSR命令リターンアドレスアキュムレーター3に残しているので、これは関数サブルーチン呼び出しから戻るための一般的な方法であったSTA 0,3,-1 アキュムレータ0の内容を、アキュムレータ3に含まれるアドレスより1つ少な位置格納する。 DSZ COUNT COUNTというラベルの場所の値をデクリメントし、結果ゼロ場合次の命令スキップする上記場合同様にCOUNTが .NREL 空間にあると仮定すると以下のようになる: DSZ 1,(COUNT-(.+1))

※この「メモリ参照命令」の解説は、「データゼネラルNova」の解説の一部です。
「メモリ参照命令」を含む「データゼネラルNova」の記事については、「データゼネラルNova」の概要を参照ください。

ウィキペディア小見出し辞書の「メモリ参照命令」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「メモリ参照命令」の関連用語

メモリ参照命令のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



メモリ参照命令のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、WikipediaのデータゼネラルNova (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2025 GRAS Group, Inc.RSS