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.

SHRD—Double Precision Shift Right<br />

オペコード 命令 説明<br />

0F AC SHRD r/m16,r16,imm8 r/m16 を右に imm8 位置シフトし、r16 からのビットを左からシフ<br />

ト・インする。<br />

0F AD SHRD r/m16,r16,CL r/m16 を右に CL 位置シフトし、r16 からのビットを左からシフ<br />

ト・インする。<br />

0F AC SHRD r/m32,r32,imm8 r/m32 を右に imm8 位置シフトし、r32 からのビットを左からシフ<br />

ト・インする。<br />

0F AD SHRD r/m32,r32,CL r/m32 を右に CL 位置シフトし、r32 からのビットを左からシフ<br />

ト・インする。<br />

説明<br />

第 1 オペラン ド ( デステ ィ ネーシ ョ ン ・ オペラン ド ) を第 3 オペラン ド ( カウント ・ オペ<br />

ランド ) で指定されたビ ッ ト 数だけ右にシフ ト する。 第 2 オペラン ド ( ソース ・オペラ<br />

ンド ) は、 ( デス テ ィ ネ ー シ ョ ン ・ オペラ ン ド の最上位ビ ッ ト で始 ま っ て ) 左か ら シ フ<br />

ト ・インするビットを指定する。 デスティネーション・オペランドには、 レジスタまた<br />

はメモリ ・ ロケーショ ンを使用できる。 ソース ・ オペラン ド は、 レジスタである。 カウ<br />

ント ・オペランドは符号なし整数で、 即値バイトまたはCL レジスタの内容である。 カ<br />

ウン トのビッ ト 0 ~ 4 だけが使用 さ れ、 カ ウ ン ト が 0 ~ 31 の値にマス ク される。 カ ウン<br />

トがオペランド ・サイズよ り大きい場合は、 デスティネーション ・ オペランドの結果は<br />

未定義である。<br />

カウントが1 以上であ る場合は、 CF フラグにはデスティネーション・オペランドから最<br />

後にシフ ト されたビ ッ ト が入る。 1 ビット ・シフトでは、 OF フ ラ グは、 符号変更が発生<br />

するとセッ ト され、 そうでなければクリアされる。 カウン ト ・ オペランドが 0 である場<br />

合は、 フラグは影響を受けない。<br />

SHRD 命令は、 64 ビ ッ ト 以上の多重精度シ フ ト に有用である。<br />

操作<br />

COUNT ← COUNT MOD 32;<br />

SIZE ← OperandSize<br />

IF COUNT = 0<br />

THEN<br />

no operation<br />

ELSE<br />

IF COUNT ≥ SIZE<br />

THEN (* Bad parameters *)<br />

DEST is undefined;<br />

CF, OF, SF, ZF, AF, PF are undefined;<br />

ELSE (* Perform the shift *)<br />

CF ← BIT[DEST, COUNT - 1]; (* last bit shifted out on exit *)<br />

FOR i ← 0 TO SIZE - 1 - COUNT<br />

DO<br />

BIT[DEST, i] ← BIT[DEST, i - COUNT];<br />

OD;<br />

FOR i ← SIZE - COUNT TO SIZE - 1<br />

DO<br />

BIT[DEST,i] ← BIT[inBits,i+COUNT - SIZE];<br />

OD;<br />

FI;<br />

FI;<br />

第 3 巻 : IA-32 基本命令リファレンス 3:743

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!