私はJavaでたくさんプログラミングし、Pythonの基本を知っていて、時々c ++で遊んでいます...そしてそれらはすべて高級プログラミング言語であり、それらは素晴らしいですが、これで物事がより深いレベルでどのように機能するかについて興味がありましたケースアセンブリ言語...x86プロセッサのアセンブリを学び始め、アセンブラとしてNASMを選択しました。レジスターとスタックがどのように機能するか、情報がどのように格納されるか、情報を変更する方法、読み取りだけでなく練習、デバッガーの使用などを学ぶのに時間を費やしました。
つまり、入力から何かを読み取ると、対応するASCII値としてメモリに保存され、問題ありません...パス全体のオフセットと長さを使用してコンソールに読み書きする方法の基本を理解しています。ただし、前述したように、数値を含む文字はASCII値として格納されます。0は0x30として格納され、1は0x31として格納されます。つまり、1桁がバイト全体として格納されることを意味し、これは不利な点と見なされます。 1バイトで255までの数値を表すことができるので、数学演算を実行して他のデータ用のスペースを残すために多くのメモリと時間を節約できます... c ++などの言語では、整数値は4バイトで表されます。つまり、これらの言語では次のことができます。 4294967295までの整数を格納します
要点を理解する...私が本当に知りたいのは、数値を表現し、nasmを使用して基本的な算術演算を実行するための最良のアプローチは何ですか。それらの数値をASCII値のままにして、バイトレベルで演算を実行する必要がありますか。バイトがより大きな値を保持できるように、これらの数値を変換しますか?または、より効率的に数字を読み取る方法はありますか?
PS:長い投稿で申し訳ありませんが、私はあなたたちがそれに基づいて私を助けることができるように私の懸念の全体的な背景を伝えたかっただけです...そして悪い英語のために...私はできるだけ明確にしようとしました(英語は私の母国語ではありませんが、私はできる限りそれを理解しようとしています...それは私がプログラミングしているときに英語を知るのに大いに役立ちます)