第二部 トロン仕様チップ命令詳細第十章 10進演算命令
PACK
10進演算命令 <<L2>>

【ニモニックとオペランド】

PACK src, dest

【機能】

Pack
パック

【オプション】

なし

【命令フォーマットと表記法】

【解説】

 srcの文字コードをパック形式10進数に変換して、destに転送します。この命令では、以下の組合せのオペランドサイズが可能です。
 src[m:n]はsrcフィールドのm番目のビットからn番目のビットを指定します。

PACK src.H, dest.B

sx = 01, sy = 00

src[04:07] → dest[00:03]
src[12:15] → dest[04:07]
PACK src.W, dest.H

sx = 10, sy = 01

src[04:07] → dest[00:03]
src[12:15] → dest[04:07]
src[20:23] → dest[08:11]
src[28:31] → dest[12:15]
PACK src.W, dest.B

sx = 10, sy = 00

src[12:15] → dest[00:03]
src[28:31] → dest[04:07]

【フラグ変化】


【発生EIT】

RIE src [Gen/ru], dest [Gen/wu]のアドレッシングモード違反
RIE sx ≦ sy
RIE sx = 10 かつ sy = 01(この機能がサポートされていないとき)
RIE sx = 11, sy = 11

【使用例】



 16ビット長の数値H'a76eを32ビットに符号拡張し(H'ffffa76e)、汎用レジスタR5の値(H'0000018e)に加算します。この加算結果(H'ffffa8fc)で示されるメモリアドレスから32ビットのデータをフェッチします。この32ビットデータのビット12からビット15の値(4)をR7のビット0から3に転送します。32ビットデータのビット28から31の値(8)はR7のビット4から7に転送されます。