2011-12-15 12 views
0

stdinからレジスタに数値を読み込ませる方法/システムコール/関数はありますか?readint nasm linux assembly

現在、9文字などの文字列で読み取ることができます。

これは私が私の電話番号は、可変長のものであってもよいので、探していたもの、残念ながら、ないです(限り、それはアセンブリで表現される)

例えば私は "-1123534"のような負の数値と同様に "5"と "66785949"を入力でき、文字列ではなくアセンブリで実際の数値として正しく表現したいと考えています。

どこでも探していますので、ここで質問しました。

簡単な方法がない場合は、Cの入出力関数ライブラリを自分のlinux nasmアセンブリコードに使用できますか?どうすればいいのですか?これらの関数のどれかをstdinから数値を取得するにはどうすればいいですか?

ありがとうございました

+1

いつでも自分で行うことができます。 66785949 =((((6 * 10 + 6)* 10 + 7)* 10 + 8)* 10 + 5)* 10 + 9)* 10 + 4)* 10 + 9。 –

答えて

1

いいえ、システムコールはありません。はい、自分で実装する気がない場合は、atoi()を簡単に呼び出すことができます。 Cライブラリ(-lc)にリンクし、外部シンボル(extern atoi)を宣言するだけです。