数値書き込み

シリアルコードと同じ機能を持った物が追加されたので
今まで自分でプログラムを組んで数値をズラすしかなかった物が
これで簡単に解決する事が出来ます
扱うデータサイズによって少し動作が変わってくるので
誤設定しないように気をつけましょう。


単純書き込み 00xxxxxx 000000zz 02xxxxxx 0000zzzz 04xxxxxx zzzzzzzz アドレスxxにzzの値を書き込む。 上から順にバイト、ハーフワード、ワードデータの書き込みです 従来のPARで言う「0、1、2」コードと同じです。 ポインタ書き込み(バイト) 40xxxxxx yyyyyyzz アドレスxxに格納されている数値に 符号拡張したyyを加算した数値をアドレスとみてzzを書き込む。 ポインタ書き込み(ハーフワード) 42xxxxxx yyyyzzzz アドレスxxに格納されている数値に 符号拡張したyy×2hを加算した数値をアドレスとみてzzを書き込む。 ポインタ書き込み(ワード) 44xxxxxx zzzzzzzz アドレスxxに格納されている数値をアドレスとみてzzを書き込む ポインタ書き込みはストア命令のような物です。 数値加算 80xxxxxx 000000zz 82xxxxxx 0000zzzz アドレスxxに値zzを加算する 上がバイトデータ、下がハーフワードデータです オーバーフローは発生しても無視されます。 バイト連続書き込みA 00000000 80xxxxxx 000000zz aaaabbcc バイトデータzzにccを、アドレスxxにaaを加算しつつ bb回バイトデータzzを連続で書き込む、aaとccは符号拡張して扱います。 ハーフワード連続書き込みA 00000000 82xxxxxx 0000zzzz aaaabbcc ハーフワードデータzzにccを、アドレスxxにaaを加算しつつ bb回ハーフワードデータzzを連続で書き込む、aaとccは符号拡張して扱い 且つaaは×2hで扱うので、0001を入れると2hずつのズレになります。 ワード連続書き込み 00000000 84xxxxxx zzzzzzzz aaaabbcc ワードデータzzにccを、アドレスxxにaaを加算しつつ bb回ワードデータzzを連続で書き込む、aaとccは符号拡張して扱い 且つaaは×4hで扱うので、0001を入れると4hずつのズレになります。 従来のPARで言う「4」コードに近いものですが 書き込む数値も増加させれるのでシリアルコードと同等になります。 バイト連続書き込みB 00xxxxxx yyyyyyzz アドレスxxからyyyyyy+1回分、zzのバイト値を連続で書き込む。 00567890 00000363 と使用した場合00567890から4回分バイト値を書き込む、つまり 04567890 63636363 というコードを使った場合と 同じ動作をするようになります。 ハーフワード連続書き込みB 02xxxxxx yyyyzzzz アドレスxxからyyyy+1回分、zzハーフワード値を連続で書き込む。 02567890 0003FFFF と使用した場合、00567890から4回分ハーフワード値を書き込む、つまり 04567890 FFFFFFFF 04567894 FFFFFFFF という2行のコードを使った場合と 同じ動作をするようになります。