2012-03-11 7 views
1

文字列を整数に変換する方法を学習しようとしています。私はかなり近いと思う。私のコードは260以下の数字でも機能します。入力した数字が260以上になると、0に変換されます。バイトのサイズと関係するかもしれませんが、それを修正する。助言がありますか? いくつかのアーバイン関数が含まれていますが、自分のReadInt関数を記述しようとしています。文字列をDWORDに変換する(アセンブリx86)

答えて

2

私は問題を見ることができます。

lodsb命令は、aleaxの下位8ビット)に1バイトをロードします。これは、ヒントです。 eaxの残りは変更されていません。 lodsbで変更されていない余分なビットが、eaxに含まれる原因は何ですか?

+0

私は、Assemblyにはかなり新しいので混乱していると思います。私はlodsbをlodsdに変更しようとしましたが、それを行うと、xは常に0になります。私はeaxレジスタの代わりにalレジスタを使用すると同じことが起こります。 – shades

+0

気にしないで、私はそれを理解した!ありがとう! – shades