7

ウィンドウのアセンブリを学習しようとしていますが、2 つのアセンブラがあることがわかります。

masm : https://www.microsoft.com/downloads/en/details.aspx?FamilyID=7a1c9da0-0510-44a2-b042-7ef370530c64

masm32 : http://masm32.com/index.htm

これらは同等ですか?Windows のアセンブリを学習するには、どれを選択すればよいですか?

4

3 に答える 3

4

どちらも MASM (どうやら) で、バージョンが違うだけです。私は通常、公式 (MS) リンクを使用します。MASM は現在、Windows SDK の一部でもあります。インストールするとML.exe、ディレクトリに含まれbinます。

アセンブリ言語を学ぶためだけに使用している場合は、使用する MASM バージョンに大きな違いはありません。新しいバージョンの MASMML64.exeでは、x86 命令セットに追加されるにつれて、64 ビット ( ) および新しい命令のサポートが追加されますが、それだけです。異なるアセンブラ間の主な違いは、異なる方言です。x86 アセンブリ言語には、MASM 構文、NASM 構文、および Unix スタイルのas構文の 3 つの主な方言があります (以前は Borland TASM もありましたが、現在はほとんど使われていません)。MASM、NASM、および YASM はすべて同じ命令名とレジスタ名を使用しますが、いくつかの規則 ( dword ptr [blah]vs.dword [blah]など) がわずかに異なり、マクロ言語もまったく異なります。MASM には、.if/ .endifinvokeなど、他のアセンブラには存在しません。それが利点であるかどうかは好みの問題です。個人的には NASM スタイルの構文の方が規則的であり、マクロ プリプロセッサを使用する方が便利だと思うので好みですが、それは好みの問題です。

asは別問題です。Intel のマニュアルに記載されているものとはまったく異なる構文と命令名を使用しています。これは、ほとんどの Unix バリアント (および GCC などのその環境に由来するコンパイラーでも) のデフォルトですが、基本的にその環境以外では使用されません。現在のバージョンの GNUasは Intel 構文もサポートしているため、構文の違いのほとんどはなくなりますがas、一般的には、主にコンパイラのバックエンド アセンブラーとして意図されており、本格的なマクロ アセンブラーではありません。 MASM または NASM/YASM。

于 2010-11-02T08:34:06.777 に答える
1

どうやら MASM32 はエディターなどを備えた完全な SDK のようです。ここでダウンロードできるのは、Visual C++ 2005 Express Edition と共に使用するためのアセンブラー自体だけです (「システム要件」を参照)。したがって、ゼロから始めたい場合は、MASM32 Sdk をダウンロードしてください。これは、私が推測する限り、初心者に適しています。MASM の詳細については、こちらのページをお読みください。

于 2010-11-02T08:21:35.153 に答える
1

joni が言ったように、MASM32 は完全な SDK です。エディター、いくつかのヘルプ ファイル、および基本的に MASM 言語でコーディングするために必要なすべてのものが含まれています。また、MASM32 には実際にバージョン 8 の MASM が含まれていることにも注意してください。あなたは何も見逃していません。個人的にはパッケージとして MASM32 をお勧めします。これにより、MASM の開始がはるかに簡単になりますが、最初からすべてを実行し、元の MASM アセンブラーだけを使用して、そこから理解することができます。

于 2011-06-28T20:15:13.153 に答える