したがって、%eax = x には値があります。
私は行を持っています:
tests $1,%al
je .L2
だから私はそれが 1&%al を実行していることを知っており、等しい場合はジャンプします。私の質問は、%eax が x の場合に %al とは何かということです (%al が最下位バイトであることはわかっています。x に関してそれが何であるかを知りたいのです)。そして、それが1に等しいとはどういう意味ですか??
したがって、%eax = x には値があります。
私は行を持っています:
tests $1,%al
je .L2
だから私はそれが 1&%al を実行していることを知っており、等しい場合はジャンプします。私の質問は、%eax が x の場合に %al とは何かということです (%al が最下位バイトであることはわかっています。x に関してそれが何であるかを知りたいのです)。そして、それが1に等しいとはどういう意味ですか??
x に関しては、%al は実際には最下位バイトにすぎません。あなたがしているのは、「x の一部」、つまり x の合計値に最大 255 の値を与える部分だけを見ていることです。漠然と聞こえるかもしれません。
これが意味することの 1 つは、x が最下位 1 であるため奇数であるということです。この場合、x を全体として見る必要はありません。これ以外の強力な結論を安全に引き出すことはできませんでした。
EAX レジスタ (アキュムレータ レジスタ) は、論理的に次のように分割できます。
それが何を意味するかは、アキュムレータレジスタを使用しているものによって異なります。
通常、IO アクセス、演算、および割り込みに使用されます。
これが一部の C コードから生成された場合、X の型がバイトであり、比較のためにパイプラインに大きな単語を送信する必要がないと想定できますか?
AL は EAX の最下位バイトです。