0

したがって、%eax = x には値があります。

私は行を持っています:

tests $1,%al
je .L2

だから私はそれが 1&%al を実行していることを知っており、等しい場合はジャンプします。私の質問は、%eax が x の場合に %al とは何かということです (%al が最下位バイトであることはわかっています。x に関してそれが何であるかを知りたいのです)。そして、それが1に等しいとはどういう意味ですか??

4

3 に答える 3

2

x に関しては、%al は実際には最下位バイトにすぎません。あなたがしているのは、「x の一部」、つまり x の合計値に最大 255 の値を与える部分だけを見ていることです。漠然と聞こえるかもしれません。

これが意味することの 1 つは、x が最下位 1 であるため奇数であるということです。この場合、x を全体として見る必要はありません。これ以外の強力な結論を安全に引き出すことはできませんでした。

于 2015-02-25T17:00:49.513 に答える
1

EAX レジスタ (アキュムレータ レジスタ) は、論理的に次のように分割できます。

  • AX 2 最下位バイト (16 ビット)、
  • AH AX の上位バイト
  • AX の AL 下位バイト (全体の最下位バイト)

それが何を意味するかは、アキュムレータレジスタを使用しているものによって異なります。

通常、IO アクセス、演算、および割り込みに使用されます。

これが一部の C コードから生成された場合、X の型がバイトであり、比較のためにパイプラインに大きな単語を送信する必要がないと想定できますか?

于 2015-02-25T17:02:26.347 に答える
0

AL は EAX の最下位バイトです。

于 2015-02-25T16:56:06.813 に答える