16.02.2013 Aufrufe

24531904_j

24531904_j

24531904_j

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

czx<br />

czx ─ ゼロ・インデックスの算出 (Compute Zero Index)<br />

書式 : (qp) czx1.lr 1 = r 3 one_byte_form, left_form I29<br />

(qp) czx1.rr 1 = r 3 one_byte_form, right_form I29<br />

(qp) czx2.lr 1 = r 3 two_byte_form, left_form I29<br />

(qp) czx2.rr 1 = r 3 two_byte_form, right_form I29<br />

説明 : ゼロ要素を探して GR r 3 がスキャンされる。 要素は、 8 ビッ トにアライメントされた1 バ<br />

イト (one_byte_form) か 16 ビッ トにアライメントされた2 バイ ト (two_byte_form) である。<br />

最初に検出されたゼロ要素のインデッ クスが GR r 1 に格納される。 GR r 3 にゼロ要素がな<br />

い場合は、 デフ ォ ル ト 値が GR r 2 に格納される。 表 2-21 に起こ り う る結果を示す。<br />

left_form では、 ソ ー スが最上位要素か ら 最下位要素にスキ ャ ン さ れ、 right_form では、<br />

ソ ー スが最下位要素か ら 最上位要素に ス キ ャ ン さ れる。<br />

表 2-21. czx の結果の範囲<br />

サイズ 要素幅<br />

操作 : if (PR[qp]) {<br />

check_target_register(r 1);<br />

ゼロ要素が検出された場合の<br />

結果の範囲<br />

ゼロ要素が検出されなかった場合の<br />

デフォルト結果<br />

1 8 ビット 0-7 8<br />

2 16 ビット 0-3 4<br />

if (one_byte_form) {<br />

if (left_form) { // scan from most significant down<br />

if ((GR[r 3 ] & 0xff00000000000000) == 0) GR[r 1 ] = 0;<br />

else if ((GR[r 3 ] & 0x00ff000000000000) == 0) GR[r 1 ] = 1;<br />

else if ((GR[r 3] & 0x0000ff0000000000) == 0) GR[r 1] = 2;<br />

else if ((GR[r 3 ] & 0x000000ff00000000) == 0) GR[r 1 ] = 3;<br />

else if ((GR[r 3 ] & 0x00000000ff000000) == 0) GR[r 1 ] = 4;<br />

else if ((GR[r 3] & 0x0000000000ff0000) == 0) GR[r 1] = 5;<br />

else if ((GR[r 3 ] & 0x000000000000ff00) == 0) GR[r 1 ] = 6;<br />

else if ((GR[r 3 ] & 0x00000000000000ff) == 0) GR[r 1 ] = 7;<br />

else GR[r 1] = 8;<br />

} else { // right_form scan from least significant up<br />

if ((GR[r 3 ] & 0x00000000000000ff) == 0) GR[r 1 ] = 0;<br />

else if ((GR[r 3] & 0x000000000000ff00) == 0) GR[r 1] = 1;<br />

else if ((GR[r 3 ] & 0x0000000000ff0000) == 0) GR[r 1 ] = 2;<br />

else if ((GR[r 3 ] & 0x00000000ff000000) == 0) GR[r 1 ] = 3;<br />

else if ((GR[r 3 ] & 0x000000ff00000000) == 0) GR[r 1 ] = 4;<br />

else if ((GR[r 3 ] & 0x0000ff0000000000) == 0) GR[r 1 ] = 5;<br />

else if ((GR[r 3 ] & 0x00ff000000000000) == 0) GR[r 1 ] = 6;<br />

else if ((GR[r 3 ] & 0xff00000000000000) == 0) GR[r 1 ] = 7;<br />

else GR[r 1 ] = 8;<br />

}<br />

} else { // two_byte_form<br />

if (left_form) { // scan from most significant down<br />

if ((GR[r 3 ] & 0xffff000000000000) == 0) GR[r 1 ] = 0;<br />

else if ((GR[r 3 ] & 0x0000ffff00000000) == 0) GR[r 1 ] = 1;<br />

else if ((GR[r 3 ] & 0x00000000ffff0000) == 0) GR[r 1 ] = 2;<br />

else if ((GR[r 3 ] & 0x000000000000ffff) == 0) GR[r 1 ] = 3;<br />

else GR[r 1 ] = 4;<br />

} else { // right_form scan from least significant up<br />

if ((GR[r 3 ] & 0x000000000000ffff) == 0) GR[r 1 ] = 0;<br />

else if ((GR[r 3 ] & 0x00000000ffff0000) == 0) GR[r 1 ] = 1;<br />

else if ((GR[r 3 ] & 0x0000ffff00000000) == 0) GR[r 1 ] = 2;<br />

else if ((GR[r 3 ] & 0xffff000000000000) == 0) GR[r 1 ] = 3;<br />

else GR[r 1 ] = 4;<br />

第 3 巻 : 命令リファレンス 3:43

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!