0

I/O トラップ #4 を使用して数値を読み取ります。これにより番号が得られますが、署名されているか署名されていないかについては言及されていません。これは、そのまま読み込むだけで、どちらかである可能性があるためだと思います。

値が署名されていないかどうかを確認するにはどうすればよいですか? ie: 0 から 2^32 までの間であることを確認するにはどうすればよいですか?

4

1 に答える 1

0

これをコードで「チェック」する方法はありません。数値の符号性は、レジスタに格納されるプロパティではありません。ビットの解釈方法、つまり、数値を処理するときにどの命令を使用するかを知っておく必要があります。これは、異なる命令が異なる方法でビットを処理するためです。

ドキュメントは...これに関して欠けているようです。単にテストすることをお勧めします。入力するとどうなります-1か? レジスターに登録する必要が0xffffffffあります。

于 2014-04-09T11:17:01.713 に答える