Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
アセンブリSparcでビット演算を使用してアドレスが8の倍数であるかどうかを確認するにはどうすればよいですか?
Cでは、次のようなことを行う必要があります。
is_multiple_of_8 = (addr & (8 - 1)) == 0;
したがって、手動で、またはコンパイラに支援を求めることによって、これをasmに変換するだけです(例gcc -S)。実際には、最大で2つまたは3つの命令のみである必要があります。アドレスに7をANDしてから、ゼロをテストする必要があります。
gcc -S