竹下世界塔の計算機よもやま話

アクセスカウンタ

zoom RSS ぼくのかんがえたさいきょうCPU: 2017.05 分岐命令

<<   作成日時 : 2017/05/21 04:38   >>

ブログ気持玉 0 / トラックバック 1 / コメント 0

 分岐命令は条件により命令の流れを変える。相対アドレスによる分岐、1命令スキップ、Conditional Moveを行う。

概要と基本フォーマット

・基本は1バイト命令。CO1:J1フォーマットを使用。

CO1: 00_nnxxxx
J1: 0000_cond

cond: 分岐条件 前命令の結果から判断。

J1 オペランドなし 条件成立で1命令スキップ (Conditional Move要素)
J1 {OPC|OPL} 条件成立で次命令アドレスからの相対分岐
J1 OP1C 条件成立でRaが示す番地へ分岐 (即値Cは無視)
J1 OP2 Ra-Rbの結果を判定し、条件成立で1命令スキップ (Conditional Move要素)
J1 OP2 {OPC|OPL} Ra-Rbの結果を判定し、条件成立で次命令アドレスからの相対分岐
J1 OP3S SS=00 Ra-Rbの結果を判定し、条件成立でRcが示す番地へ分岐
以下はOP1:J1 Reserved Operand Trap
J1 OP3S SS=01 未定
J1 OP3S SS=10 (Ra-Rbの結果を判定し、条件成立でRcを0クリア) J1 OP2で代替可能
J1 OP3S SS=11 (Ra-Rbの結果を判定し、条件成立でRcに前命令のRdをセット) J1 OP2で代替可能
その他の組み合わせ OP1:J1 Illegal Operand Trap

・分岐先が命令ではない場合
OP1:J1 Illegal Jump Address
 この命令セットは実行可能な命令の先頭バイトのMSBは'0'なので、'1'だった場合はオペランドか多バイト命令の途中である可能性が高い。間違った分岐先としてトラップする。
・その他分岐先のエラー
 与えられたメモリ領域の範囲外、実効の許可が与えられていない領域の場合にトラップ

・分岐を行う場合のRdの扱い
分岐成立/非成立にかかわらず次命令の先頭アドレスをRdとして次の命令に渡す。分岐先でこのRdを受け取り任意のレジスタにリターンアドレスとして保存できる。
・1命令スキップ動作のRdの扱い
J1 オペランドなし / J1 OP2 は前命令のRdをそのまま次に渡す。

・condについて
 4bit16パターンの条件が指定できる。前命令の演算結果(整数演算、ビット演算、浮動小数点演算)によって判定が異なる。0000は常に不成立(Never)、1111は常に成立(Always)。別途整理する。
 引数なし1バイト命令は00000000でNOPとなる(ドヤッ)。


プラレール 単線・複線ポイントレール(各1本入) R-13プラレール 単線・複線ポイントレール(各1本入) R-13

タカラトミー 1998-02-03
売り上げランキング : 4783

Amazonで詳しく見る
by G-Tools

テーマ

注目テーマ 一覧


月別リンク

ブログ気持玉

クリックして気持ちを伝えよう!
ログインしてクリックすれば、自分のブログへのリンクが付きます。
→ログインへ

トラックバック(1件)

タイトル (本文) ブログ名/日時
ぼくのかんがえたさいきょうCPU: 2017.05 概要と基本フォーマット
 ぼくのかんがえたさいきょうCPUも考え続けていつのまにか十年くらい経ってしまった。いろいろな命令セットアーキテクチャを調べるほどにいじくりまわしたくなるのだが、そろそろまとめてみようかとおもう。 ...続きを見る
竹下世界塔の計算機よもやま話
2017/05/31 20:11

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(0件)

内 容 ニックネーム/日時

コメントする help

ニックネーム
本 文




ぼくのかんがえたさいきょうCPU: 2017.05 分岐命令 竹下世界塔の計算機よもやま話/BIGLOBEウェブリブログ
文字サイズ:       閉じる