3.2.2 即値
即値のフォーマットは以下である。
code:txt(c)
(f|h)"<floating-point-number-literal>"
| (i|s|ui|us)"<integer-number-literal>"
ダブルクオートが必須なので注意する。
上記の数値型指定に関わらず、ペイロードリテラルは単語の値を定める。 数値型が半精度ならば、同じ値を 2 つ並べて単語の値とする。
ペイロードとなるリテラルの解釈は以下の通りである。
浮動小数点数(<floating-point-number-literal>)の場合
その後単精度指定であればそのまま扱われ、半精度指定であれば丸めが行われる。 整数(<integer-number-literal>)の場合
符号あり整数i, sであれば、先頭に符号+/-をつけることを許す。
符号以降は自然数として扱う。
値が数値型の範囲外であればエラーになる。
code:例 1
imm f"-1.0" $ln
code:例 2
imm us"0x8000" $t
半精度符号なし整数の0x8000をTレジスタに出力する。 なおこの例でimm s"0x8000" $tとすると、半精度符号あり整数の範囲外なのでエラーとなる。