1

アセンブリSparcでビット演算を使用してアドレスが8の倍数であるかどうかを確認するにはどうすればよいですか?

4

1 に答える 1

1

Cでは、次のようなことを行う必要があります。

is_multiple_of_8 = (addr & (8 - 1)) == 0;

したがって、手動で、またはコンパイラに支援を求めることによって、これをasmに変換するだけです(例gcc -S)。実際には、最大で2つまたは3つの命令のみである必要があります。アドレスに7をANDしてから、ゼロをテストする必要があります。

于 2011-03-31T14:54:40.437 に答える