2

分解したプログラムを理解しようとしています。私は今のところそれを理解しています。

ただし、プログラムが0x7Fの整数をAND演算している理由がわかりません。また、0xFFの整数をANDするのも好きです。このプログラムは、いくぶん乱数ジェネレーターです。

これは何を達成しますか?

0xFFでANDを実行すると、(レジスタの)下位バイトが取得され、残りは破棄されると思いますか?

特にMIPSASMでは:

## r2 = 0xfd    r3 = 0x10 ##

andi r2,r2,0x00ff       # What? Why?
andi r3,r3,0x007f       # What? Why?
4

1 に答える 1

4

0x7fは01111111であり、数値が正であることを保証するため、0x7fを使用した「AND」は最上位ビットを削除するために使用されます。0xffで「AND」を実行すると、その逆になります。

于 2013-03-13T19:54:11.127 に答える