1

私はアセンブリ プロジェクトに取り組んでいますが、理解できない事実に遭遇しました。

いくつかの数字で満たされた「貸し出し」という単語配列があります。インデックスが 0 未満のものを印刷すると、ASCII 0 (NULL) が表示されます。ただし、CMP を使用して値が 0 かどうかを確認すると、問題が発生します。ここにいくつかのコードがあります:

mov di,offset lent
mov cx,0d
cmp ds:[di],cx

[di] にゼロが含まれていないかのように、等しくないことを返します。でも:

mov di,offset lent
mov cl,0d
cmp ds:[di],cl

等しいと返され、混乱します。コードで機能するには、最初のケースが必要です。的外れな質問でしたら申し訳ありませんが、インターネット上で適切な回答を見つけることができませんでした。前もって感謝します

4

3 に答える 3

2

2 番目のケースは、 の 1 バイトと の 1 バイトを比較します。このバイトは一致します (ZF=1)。

ただし、最初のケースでは、実際には の 2 バイトと の 2 バイトを比較しています。2 つのバイトのうち 1 つだけが一致します。したがって、ZF=0 になります。

于 2013-05-09T16:10:54.213 に答える