入力文字列を暗号化して送信および復号化するアセンブラプロジェクトを完成させるために、クラスの1つでCとASM {}を使用しています。アセンブラの配列メンバーへのアクセス
鍵は空のC文字配列(20文字)にロードされ、後でXOR文で暗号化されて使用されます。
アレイのアドレスをロードするコードは:ESIへの 'キー' のアドレスを置く
LEAのESI、キー
。デバッグモードでレジスタを調べると、ここのアドレスはキー配列のアドレスと同じになりますので、そのことが分かります。
のMOV EDX、[ESI]
我々はAの値を入れて、 "MOVは、[ESI]、EAX" を使用し、これは、EDXにESIの最初のインデックスの値を移動するだろうと思いましたesi配列に登録します。その逆は論理的だったようだ。
しかし、edxが実際に得られる値は「875575655」(前回実行)またはこれに類するものです。 char値には大きすぎます。
アレイにアクセスしている可能性があります。 アドバイスをいただければ幸いです。
注:通常、配列インデックスを増やすには、単純にincsiを使用して、上で行ったように読み込みます。これが配列からの読み込みを計画していた方法です。