gcc コンパイル バイナリには、次のアセンブリがあります。
8049264: 8d 44 24 3e lea 0x3e(%esp),%eax
8049268: 89 c2 mov %eax,%edx
804926a: bb ff 00 00 00 mov $0xff,%ebx
804926f: b8 00 00 00 00 mov $0x0,%eax
8049274: 89 d1 mov %edx,%ecx
8049276: 83 e1 02 and $0x2,%ecx
8049279: 85 c9 test %ecx,%ecx
804927b: 74 09 je 0x8049286
一見しただけでは、何をしているのかまったくわかりませんでした。私の最善の推測は、ある種のメモリアラインメントとローカル変数のクリアです (ローカル変数の場所で rep stos が 0 を埋めているため)。最初の数行を見ると、アドレスを eax にロードして ecx に移動し、偶数アドレスかどうかをテストしますが、なぜこれが起こっているのかわかりません。ここで何が起こっているのか正確に知りたいです。