0

2 つの文字列を比較するコードを作成しようとしています。string1 が SI によって参照され、string2 が DI によって参照され、各文字列の長さが 50 であると仮定します。

これは正しいです?

Mov SI,2000H
Mov DI,3000H
Mov CX,50H
CLD
REPNE CMPSW
4

1 に答える 1

2

いくつかの問題:

  • 50H は 10 進数の 80 です
  • あなたは - CMPSW 命令を使用して - ワード (16 ビット)、つまり 160 バイトを効果的に比較しています。
  • 比較された要素が等しい限り、命令を繰り返す REPE プレフィックスを使用したいと思います。または、CX での比較回数まではもちろん実行されました。

CX に何を入れるかについて: まあ、文字列が常に 2 の倍数の長さであると確信している場合は、CMPSW の方が高速です。CXの内容を調整するだけです

于 2011-04-29T15:50:50.777 に答える