x86 ASM の学習を開始するための、簡潔で構造化された適切な方法を探しています。私は Perl、Python、および C/C++ の経験があり、いわば「ボンネットの下に入りたい」とかなり前から思っていましたが、調査するたびに、混乱し、矛盾し、大部分がアウトになっていることがわかります。日付情報の。私はMASM、FASM、HLA、およびグーグルで見つけた他のいくつかのものをいじっていますが、どれも私が探しているものを提供していないようです: 核心的な低レベルへの良い情報を簡単に紹介ASMの世界。stdout.put() などを提供する HLA のようなものは必要ありません。実際の割り込みが呼び出されているのを確認し、すべてがどのように機能するかを学びたいと考えています。何かアドバイス?
3 に答える
MIPSアセンブリを試してみてください。アセンブリがどのように機能するかを理解したい場合は、はるかに簡単で優れています。ここからダウンロードできるMARSと呼ばれるシミュレーターがあります:http://courses.missouristate.edu/KenVollmar/Mars/download.htm
これはあなたを助けることができます:http://www.inf.pucrs.br/~calazans/undergrad/arq1/mips/cod-appa.pdf
質問に正しく答えられず申し訳ありません。
組み立ての明確なバイブル、Art of Assemblyがあります。さらに、オンラインで無料で入手できます!少し時代遅れですが、非常に複雑な新しいことに飛び込むことなく基本を学ぶことができるので、これは良いことです。 features」は、オペレーティング システムでのみ役立ちます。(出典: computer-books.us )
いくつかのヒント:
nasm を使用してください。これは、UNIX および Windows の世界の「標準」コンパイラであり、本で使用されている masm に非常によく似た構文を持っています。 )。
おっしゃるとおり、HLA はアセンブリを学習するための間違った方法です。高水準言語用に保存してください :)
OSの上でプログラムを実行するか、Virtualboxを使用できます
最初は「金属に固執する」ようにしてください。つまり、ライブラリはなく、アセンブリ以外は何もありません。マシン自体が提供しないものは何もありません。
理論を理解したら (重要です!)、bios 機能、特に print to screen 機能 (非常に単純です) について読んでみてください。これにより、仮想マシンまたは実際のハードウェアでコードをすばやくテストできます。
必須ではありませんが、c の学習を試みることもできます。アセンブリと低レベルの概念を共有し、c++ とかなり似ているためです。
参考文献:
Linux を使い始めるための簡単なHello World チュートリアルです。
BIOS機能(実際には割り込み呼び出し)。
概念については、基本的な本から始めるのが常に良いです。Kenneth J. Ayala 著の「8086 Microprocessor: Programming and Interfacing the PC」という本をお勧めします。これは、世界中の多くの大学で使用されている教科書であり、トピックを紹介します。