条件分岐命令とは? わかりやすく解説

条件分岐命令

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

PDP-11」の記事における「条件分岐命令」の解説

多く分岐命令は、PSWステータスレジスタ)の条件コードの状態に基づいて分岐するか否か決定する一般に直前CMP命令BIT命令TST命令などを行って条件コードセットする算術演算命令論理演算命令条件コードセットするインテルx86とは異なりMOV命令条件コードセットする。したがって転送した値がゼロか否か、負か否か条件分岐することもできる命令の上8ビット命令コードである。下位8ビット現在のプログラムカウンタからの相対オフセット指定するオフセットワード数であり、分岐アドレスはそれを2倍してPC加えたものとなる。またオフセット符号付整数なので、前方にも後方にも分岐できる。 15 11 10 8 7 0 x 0 0 0 0 Opcode Offset 命令コードニーモニック説明0000xx (システム命令) 0004xx BR 無条件分岐 0010xx BNE 等しくないとき分岐 (Z=0) 0014xx BEQ 等しいとき分岐 (Z=1) 0020xx BGE 大きいか等しいとき分岐 (N|V = 0) 0024xx BLT 小さいとき分岐 (N|V = 1) 0030xx BGT 大きいとき分岐 (N^V = 1) 0034xx BLE 小さいか等しいとき分岐 (N^V = 0) 1000xx BPL 正のとき分岐 (N=0) 1004xx BMI 負のとき分岐 (N=1) 1010xx BHI 高いとき分岐 (C|Z = 0) 1014xx BLOS 低いか同じとき分岐 (C|Z = 1) 1020xx BVC オーバーフローていないとき分岐 (V=0) 1024xx BVS オーバーフローしているとき分岐 (V=1) 1030xx BCC キャリーがないとき分岐 (C=0) BHIS 高いか同じとき分岐 (C=0) 1034xx BCS キャリーがあるとき分岐 (C=1) BLO 低いとき分岐 (C=1) 2オペランド命令の表にある SOB (subtract one and branch) も条件分岐命令である。レジスタオペランドをデクリメントし、結果ゼロでないとき命令下位6ビット符号なしオフセット解釈して後方分岐する分岐できる範囲限られているため、コード成長していくとこれらの命令では分岐先に到達できなくなる可能性がある。その場合2ワードを必要とするJMP命令書き換え、JMP命令無条件分岐なので、例えば元が BEQ だった場合BNE書き換えてJMP命令スキップするようにする。

※この「条件分岐命令」の解説は、「PDP-11」の解説の一部です。
「条件分岐命令」を含む「PDP-11」の記事については、「PDP-11」の概要を参照ください。

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



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

辞書ショートカット

すべての辞書の索引

「条件分岐命令」の関連用語

条件分岐命令のお隣キーワード
検索ランキング

   

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



条件分岐命令のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

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

©2024 GRAS Group, Inc.RSS