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.

mov cr<br />

mov ─ コントロール・レジスタの移動 (Move Control Register)<br />

書式 : (qp) movr 1 = cr 3 from_form M33<br />

(qp) movcr 3 = r 2 to_form M32<br />

説明 : ソース・オペランドがデスティネーション・レジスタにコピーされる。<br />

from_form では、 cr3 で指定されるコン ト ロール ・ レジスタが読み込まれ、 その値が GR<br />

r1 にコピーされる。<br />

to_form では、 GR r2 が読み込まれ、 その値が CR cr3 にコピーされる。<br />

コ ン ト ロ ー ル ・ レ ジ ス タ には、 最高の特権レベル以外ではア ク セスで き ない。 PSR.ic<br />

ビッ トが1 の場合、 割 り 込み コ ン ト ロ ー ル ・ レ ジ ス タ (CR16 ~ CR25) の読み込み ま たは<br />

書き込みを行 う と 、 無効操作フ ォ ル ト が発生す る。<br />

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

if (is_reserved_reg(CR_TYPE, cr 3 )<br />

|| to_form && is_read_only_reg(CR_TYPE, cr 3 )<br />

|| PSR.ic && is_interruption_cr(cr 3 ))<br />

{<br />

illegal_operation_fault();<br />

}<br />

}<br />

if (from_form)<br />

check_target_register(r 1 );<br />

if (PSR.cpl != 0)<br />

privileged_operation_fault(0);<br />

if (from_form) {<br />

if (cr 3 == IVR)<br />

check_interrupt_request();<br />

if (cr 3 == ITIR)<br />

GR[r 1 ] = impl_itir_cwi_mask(CR[ITIR]);<br />

else<br />

GR[r 1 ] = CR[cr 3 ];<br />

GR[r 1 ].nat = 0;<br />

} else { // to_form<br />

if (GR[r 2 ].nat)<br />

register_nat_consumption_fault(0);<br />

}<br />

if (is_reserved_field(CR_TYPE, cr 3 , GR[r 2 ]))<br />

reserved_register_field_fault();<br />

if (cr 3 == EOI)<br />

end_of_interrupt();<br />

tmp_val = ignored_field_mask(CR_TYPE, cr 3 , GR[r 2 ]);<br />

CR[cr 3 ] = tmp_val;<br />

if (cr 3 == IIPA)<br />

last_IP = tmp_val;<br />

割り込み : 無効操作フ ォ ル ト レ ジ ス タ NaT 参照フ ォ ル ト<br />

特権操作フ ォル ト 予約レジスタ / フィールド ・フォルト<br />

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

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!