tmori / athrill-target

athrill target dependent codes
4 stars 4 forks source link

stx/stbで負の値を扱った場合、符号拡張がされていない #29

Closed ytoi closed 4 years ago

ytoi commented 4 years ago

stxで負の値を扱った場合に正しく符号拡張されずにレジスタに入る。

stx r10

で実行した際のログは以下のように出る。 0x16a8: SXH r10(-1):65535

本来符号拡張されているので、後ろの値は2^16-1ではなく、2^32-1にならないといけない。

変数宣言しているtmpがuint16で定義されていて、その値で書き戻していたのが間違い。 同様の不具合がsxbにもあったので、それも修正。

ytoi commented 4 years ago

65535を入れてprint分を入れてもマイナス表示ならなかったことからopコード側を調査。