| PACK 10進演算命令 <<L2>> |
【ニモニックとオペランド】
【機能】
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に転送されます。