コードリファレンス
凡例
記号 |
意味 |
???? |
任意の値(一般的に0を代入) |
rrrr |
アドレス |
ssss |
データ |
zzzz |
ビットマスク |
nnnn |
カウント |
vvvv |
直接値 |
"Offset" |
コード実行用レジスタが使用するアドレスのオフセット値 |
"Stored" | コード実行用レジスタが使用するストア値 |
※アドレスはハードウェアアドレスを使用する。 PARコード一覧(一覧内の例では、オフセット値が未設定で"0x00000000"となっているとする) |
0x0命令 |
|
書式 |
0x0rrrrrrr 0xssssssss |
命令内容 |
32bitデータ書き込み命令。 " rrrrrrr+offset"が示すアドレスに32bitデータ"ssssssss"を書き込む。 |
使用例 |
0x0915a96c 0x05f5e0ff アドレス"0x915a96c"に32bitデータ"0x05f5e0ff"を書き込む。 |
0x1命令 |
|
書式 |
0x1rrrrrrr 0x????ssss |
命令内容 |
16bitデータ書き込み命令。 "rrrrrrr+offset"が示すアドレスに16bitデータ"ssss"を書き込む。 |
使用例 |
0x1903fe56 0x0000270f アドレス"0x903fe56"に16bitデータ"0x270f"を書き込む。 |
0x2命令 |
|
書式 |
0x2rrrrrrr 0x??????ss |
命令内容 |
8bitデータ書き込み命令。 "rrrrrrr+offset"が示すアドレスに8bitデータ"ss"を書き込む。 |
使用例 |
0x292c8bb2 0x00000064 アドレス"0x92c8bb2"に8bitデータ"0x64"を書き込む。 |
0x3命令 |
|
書式 |
0x3rrrrrrr 0xssssssss |
命令内容 |
32bit比較「~より小さいとき(if less-than)」の条件分岐命令。 アドレス"rrrrrrr+offset"に格納された32bitデータが"ssssssss"より小さいとき、続くコードブロック内の命令を実行する。 この命令は、入れ子にすることが可能。 |
使用例 |
0x391fcd54 0x000f423f アドレス"0x91fcd54"に格納された32bitデータが"0x000f423f"より小さいとき、この命令に続くコードブロックを実行する。 |
0x4命令 |
|
書式 |
0x4rrrrrrr 0xssssssss |
命令内容 |
32bit比較「~より大きいとき(if greater-than)」の条件分岐命令。 アドレス"rrrrrrr+offset"に格納された32bitデータが"ssssssss"より大きいとき、続くコードブロック内の命令を実行する。 この命令は、入れ子にすることが可能。 |
使用例 |
0x4909521c 0x00300030 アドレス"0x909521c"に格納された32bitデータが"0x00300030"より大きいとき、この命令に続くコードブロックを実行する。 |
0x5命令 |
|
書式 |
0x5rrrrrrr 0xssssssss |
命令内容 |
32bit比較「~と等しいとき(if equal)」の条件分岐命令。 アドレス"rrrrrrr+offset"に格納された32bitデータが"ssssssss"と等しいとき、続くコードブロック内の命令を実行する。 この命令は、入れ子にすることが可能。 |
使用例 |
0x5922e5ac 0x001101ed アドレス"0x922e5ac"に格納された32bitデータが"0x001101ed"と等しいとき、この命令に続くコードブロックを実行する。 |
0x6命令 |
|
書式 |
0x6rrrrrrr 0xssssssss |
命令内容 |
32bit比較「~と等しくないとき(if not equal)」の条件分岐命令。 アドレス"rrrrrrr+offset"に格納された32bitデータが"ssssssss"と等しくないとき、続くコードブロック内の命令を実行する。 この命令は、入れ子にすることが可能。 |
使用例 |
0x690ad56c 0x7fff0011 アドレス"0x90ad56c"に格納された32bitデータが"0x7fff0011"と等しくないとき、この命令に続くコードブロックを実行する。 |
0x7命令 |
|
書式 |
0x7rrrrrrr 0xzzzzssss |
命令内容 |
16bit比較「~より小さいとき(if less-than)」の条件分岐命令。 アドレス"rrrrrrr+offset"に格納された16bitデータにマスク"zzzz"を適用した値が"ssss"より小さいとき、続くコードブロック内の命令を実行する。 この命令は、入れ子にすることが可能。 |
使用例 |
0x791fcd54 0x0000423f アドレス"0x91fcd54"に格納された16bitデータが"0x423f"より小さいとき、この命令に続くコードブロックを実行する。 |
0x8命令 |
|
書式 |
0x8rrrrrrr 0xzzzzssss |
命令内容 |
16bit比較「~より大きいとき(if greater-than)」の条件分岐命令。 アドレス"rrrrrrr+offset"に格納された16bitデータにマスク"zzzz"を適用した値が"ssss"より大きいとき、続くコードブロック内の命令を実行する。 この命令は、入れ子にすることが可能。 |
使用例 |
0x8909521c 0x00000030 アドレス"0x909521c"に格納された16bitデータが"0x0030"より大きいとき、この命令に続くコードブロックを実行する。 |
0x9命令 |
|
書式 |
0x9rrrrrrr 0xzzzzssss |
命令内容 |
16bit比較「~と等しいとき(if equal)」の条件分岐命令。 アドレス"rrrrrrr+offset"に格納された16bitデータにマスク"zzzz"を適用した値が"ssss"と等しいとき、続くコードブロック内の命令を実行する。 この命令は、入れ子にすることが可能。 |
使用例 |
0x9922e5ac 0x000001ed アドレス"0x922e5ac"に格納された16bitデータが"0x01ed"と等しいとき、この命令に続くコードブロックを実行する。 |
0xa命令 |
|
書式 |
0xarrrrrrr 0xzzzzssss |
命令内容 |
16bit比較「~と等しくないとき(if not equal)」の条件分岐命令。 アドレス"rrrrrrr+offset"に格納された16bitデータにマスク"zzzz"を適用した値が"ssss"と等しくないとき、続くコードブロック内の命令を実行する。 この命令は、入れ子にすることが可能。 |
使用例 |
0xa90ad56c 0x00000011 アドレス"0x90ad56c"に格納された16bitデータが"0x0011"と等しくないとき、この命令に続くコードブロックを実行する。 |
0xb命令 |
|
書式 |
0xbrrrrrrr 0x???????? |
命令内容 |
アドレスからのオフセット値設定命令。 アドレス"rrrrrrr+offset"に格納されたデータをオフセット値としてセットする(ポインタを使用している際に使用する)。 |
使用例 |
0xb9108818 0x00000000 アドレス"0x9108818"に格納されたデータをオフセット値としてセットする。 |
0xc命令 |
|
書式 |
0xc??????? 0xnnnnnnnn |
命令内容 |
繰り返し回数指定命令。 続くコードブロック内の命令を"nnnnnnnn"回実行する。繰り返し命令のコードブロック内に条件分岐を含むことができる。 繰り返し命令を入れ子にすることはできない。 |
使用例 |
0xc0000000 0x00000032 続くコードブロック内の命令を"0x00000032"回実行する |
0xd0命令 |
|
書式 |
0xd0?????? 0x???????? |
命令内容 |
条件分岐範囲終了(End-if)命令。 条件分岐コードブロックの終了を宣言する。 |
使用例 |
0xd0000000 0x00000000 条件分岐コードブロックの終了を宣言する。 |
0xd1命令 |
|
書式 |
0xd1?????? 0x???????? |
命令内容 |
繰り返し範囲終了(End-repeat)命令。 繰り返しコードブロックの終了を宣言する。また、繰り返しコードブロック内に条件分岐コードブロックが含まれる場合、条件分岐コードブロックの終了も同時に宣言する。 |
使用例 |
0xd1000000 0x00000000 繰り返しコードブロックの終了を宣言する。 |
0xd2命令 |
|
書式 |
0xd2?????? 0x???????? |
命令内容 |
コードブロック終了命令。 繰り返しと条件分岐コードブロックの終了を宣言して、オフセット値を"0"に戻す。各コードブロックが入れ子になっている場合、すべてのコードブロックの終了を宣言する。 |
使用例 |
0xd2000000 0x00000000 コードブロックの終了を宣言して、オフセット値を"0"に戻す。 |
0xd3命令 |
|
書式 |
0xd3?????? 0xssssssss |
命令内容 |
オフセット値直接設定命令。 データ"ssssssss"をオフセット値として設定する。 |
使用例 |
0xd3000000 0x09275dc8 データ"0x09275dc8"をオフセット値として設定する。 |
0xd4命令 |
|
書式 |
0xd4?????? 0xssssssss |
命令内容 |
ストア値加算命令。 データ"ssssssss"をストア値に加算する。 |
使用例 |
0xd4000000 0x02000400 データ"0x02000400"をストア値に加算する。 |
0xd5命令 |
|
書式 |
0xd5?????? 0xssssssss |
命令内容 |
ストア値直接設定命令。 データ"ssssssss"をストア値として設定する。 |
使用例 |
0xd5000000 0x00630001 データ"0x00630001"をストア値として設定する。 |
0xd6命令 |
|
書式 |
0xd6?????? 0xrrrrrrrr |
命令内容 |
32bitのストア値書き込みとオフセット値のインクリメント命令。 32bitのストア値をアドレス"rrrrrrrr+offset"に書き込んだ後、オフセット値に4を加算する。 |
使用例 |
0xd6000000 0x091dc850 アドレス"0x091dc850"に32bitストア値を書き込んだ後、オフセット値に4を加算する |
0xd7命令 |
|
書式 |
0xd7?????? 0xrrrrrrrr |
命令内容 |
16bitのストア値書き込みとオフセット値のインクリメント命令。 ストア値の下位16bitをアドレス"rrrrrrrr+offset"に書き込んだ後、オフセット値に2を加算する。 |
使用例 |
0xd7000000 0x0915fdb4 アドレス"0x0915fdb4"にストア値の下位16bitを書き込んだ後、オフセット値に2を加算する。 |
0xd8命令 |
|
書式 |
0xd8?????? 0xrrrrrrrr |
命令内容 |
8bitのストア値書き込みとオフセット値のインクリメント命令。 ストア値の下位8bitをアドレス"rrrrrrrr+offset"に書き込んだ後、オフセット値に1を加算する。 |
使用例 |
0xd8000000 0x0931148a アドレス"0x0931148a"にストア値の下位8bitを書き込んだ後、オフセット値に1を加算する。 |
0xd9命令 |
|
書式 |
0xd9?????? 0xrrrrrrrr |
命令内容 |
アドレスからの32bitストア値設定命令。 アドレス"rrrrrrr+offset"に格納された32bitデータをストア値としてセットする。 |
使用例 |
0xd9000000 0x09198804 アドレス"0x09198804"に格納された32bitデータをストア値としてセットする。 |
0xda命令 |
|
書式 |
0xda?????? 0xrrrrrrrr |
命令内容 |
アドレスからの16bitストア値設定命令。 アドレス"rrrrrrr+offset"に格納された16bitデータをストア値としてセットする。 |
使用例 |
0xda000000 0x093002fc アドレス"0x093002fc"に格納された16bitデータをストア値としてセットする。 |
0xdb命令 |
|
書式 |
0xdb?????? 0xrrrrrrrr |
命令内容 |
アドレスからの8bitストア値設定命令。 アドレス"rrrrrrr+offset"に格納された8bitデータをストア値としてセットする。 |
使用例 |
0xdb000000 0x091010d8 アドレス"0x091010d8"に格納された8bitデータをストア値としてセットする。 |
0xdc命令 |
|
書式 |
0xdc?????? 0xssssssss |
命令内容 |
オフセット値加算命令。 オフセット値にデータ"ssssssss"を加算する。 |
使用例 |
0xdc000000 0x00000008 オフセット値に"0x00000008"を加算する。 |
0xe命令 |
|
書式 |
0xerrrrrrr
0xnnnnnnnn |
命令内容 |
メモリ直接書き込み命令。 アドレス"rrrrrrrr+offset"から連続データ"vvvvvvvv..."を"nnnnnnnn"byte書き込む。 |
使用例 |
0xe93aa100
0x0000000c アドレス"0x93aa100"から12byteの連続データ"0x85b6cc9847006700cc275ab6"を書き込む。 |
0xf命令 |
|
書式 |
0xfrrrrrrr 0xnnnnnnnn |
命令内容 |
メモリコピー命令。 オフセット値の位置から始まる"nnnnnnnn"byteの連続データをアドレス"rrrrrrr "から始まる"nnnnnnnn"byteにコピーする。 |
使用例 |
0xf92cde64 0x00000004 オフセット値の位置から始まる4byteの連続データをアドレス"0x92cde64"から始まる4byteにコピーする。 |
複合的なコードの使用例
条件分岐命令 |
|
0x99000130 0x000001ff |
アドレス"0x09000130"が16bitデータ"0x01ff"と等しいとき |
0x295dc840 0x0000007b |
アドレス"0x095dc840"に8bitデータ"0x7b"を書き込む |
0xd2000000 0x00000000 |
条件分岐終了 |
入れ子になった条件分岐命令 |
|
0x99000130 0x000000ff |
アドレス"0x09000130"が16bitデータ"0x00ff"と等しいとき |
0x692b314c 0x03e00101 |
かつアドレス"0x092b314c"に格納されたデータが"0x03e00101"と等しくないとき |
0x092b314c 0x03e00101 |
アドレス"0x092b314c"に8bitデータ"0x03e00101"を書き込む |
0xd2000000 0x00000000 |
すべての条件分岐終了 |
繰り返し命令を使用した連続書き込み1(固定値の書き込み) |
|
0xd3000000 0x090df652 |
オフセット値にデータ"0x090df652"を設定する |
0xc0000000 0x000000c3 |
ループ回数を"0xc3"回に設定する |
0x10000000 0x000003e7 |
オフセット値が示すアドレスに16bitデータ"0x03e7"を書き込む |
0xdc000000 0x00000008 |
オフセット値に8を加算する |
0xd2000000 0x00000000 |
繰り返し終了位置宣言を行い、繰り返し終了時にオフセット値を0に戻す |
繰り返し命令を使用した連続書き込み2(インクリメント) |
|
0xd3000000 0x090df652 |
オフセット値にデータ"0x090df652"を設定する |
0xd5000000 0x0000ff01 |
ストア値にデータ"0000ff01"を設定する |
0xc0000000 0x000000c3 |
ループ回数を"0xc3"回に設定する |
0xd6000000 0x00000000 |
オフセット値が示すアドレスにストア値を書き込んでから、オフセット値に"0x4"を加算する |
0xd4000000 0x00000001 |
ストア値に"0x1"を加算する |
0xd2000000 0x00000000 |
繰り返し終了位置宣言を行い、繰り返し終了時にオフセット値を0に戻す |
動的アドレスへの書き込み |
|
0xb9108818 0x00000000 |
アドレス"0x9108818"に格納されたデータをオフセット値に設定する |
0x20000dc8 0x00000003 |
オフセット値に"0xdc8"を加算したアドレスに8bitデータ"0x03"を書き込む |
0xd3000000 0x00000000 |
オフセット値を0に戻す |
値のコピー |
|
0xd3000000 0x092f08d0 |
オフセット値に"0x92f08d0"を設定する |
0xf92f08d4 0x00000002 |
オフセット値が示すアドレスから始まる2byteに格納された連続データをアドレス"0x92f08d4"から始まる2byteにコピーする |
0xd3000000 0x00000000 |
オフセット値を0に戻す |
データ加算 |
|
0xd9000000 0x091edff4 |
アドレス"0x91edff4"に格納された32bitのデータをストア値に設定する |
0xd4000000 0x0000000a |
ストア値に"0xa"を加算する |
0xd7000000 0x091edff4 |
アドレス"0x91edff4"にストア値の下位16bitを書き込み、オフセット値に"0x2"を加算する |
ラジオボタンコード
0xcf000000命令 |
|
書式 |
0xcf000000 0x??????nn |
命令内容 |
ラジオボタンフォルダ作成命令。 以下に続くnn個のコードをラジオボタンフォルダにまとめる。 |
使用例 |
0xcf000000 0x00000004 以下に続く4コードをラジオボタンフォルダにまとめる。 |