- ベストアンサー
NASMとMASMの違い
NASMとMASNの違いってなんでしょうか? NASMは今日趣味でちょこっと触っただけです。 MASMは触ったことはありません。 実際に動くアセンブリ言語のソースを見てみようと思い、 海外のサイトから適当に*.asmのソースをダウンロードしました。 ソースを覘くと、 \masm32\include\windows.inc と明らかにMASMの何かを参照しています。 NASMではコンパイルできる気がしません。 NASMとMASMでは記述法方が変わるのでしょうか? NASMではMASMで書かれたソースはコンパイルは不可能なのでしょうか? 素人の私が根本的に勘違いしている可能性もあります。 ご存知の方がおられましたら、ご伝授よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
windows.inc はWindows のAPIを呼び出す命令を記述するときに わかりやすい記述ができるようにするマクロなどがあるファイルですね。 で、nasmとmasmとでは細かい違いがいろいろありますので、 masmように書かれたものをnasmでアセンブルするのは あきらめたほうがよろしいかと。無論多少の修正を施せば OKの場合もあるでしょう。 http://www.yuasa.kuis.kyoto-u.ac.jp/~nobu/study/nasm/chap2.html#2.2 にmasmユーザー向けの(nasmを使う上での)注意事項がまとまっています。 masmも無料で手に入らないこともないので、自分が参考にしたいものが masmをつかっているものならmasmでやってもいいんじゃないですかね。 でも、windows.inc があるのってひょっとしてDDKだっけ?
その他の回答 (2)
- edomin
- ベストアンサー率32% (327/1003)
参考までに…。 コンパイラ言語で機械語に変換→「コンパイル」 アセンブリ言語で機械語に変換→「アセンブル」 といいます。
お礼
ご指摘ありがとうございます。 読みにくい文章になってしまったようで。
- yamyam_ooo
- ベストアンサー率26% (57/217)
NASM = The Netwide Assembler. MASM = Macro Assembler. NASMはMASMとほぼ同じ文法で組めるアセンブラ言語なので、NASMではMASMで書かれたソースはコンパイル可能なことがあります。しかし、マクロの構成が異なるなど厳密には違いがあるため必ずコンパイル可能なわけではないようです。コンパイルできない部分をNASM用に書き換えることでコンパイル可能になることもあります。
お礼
お礼が遅くなってしまい申し訳ないです。 MASMをNASMに書き換えるには私がMASMを理解しないとダメですね。 ほとんどがMASM用のソースのようですし。 丁寧な解説をありがとうございます。
お礼
MASM32を触って見たのですがこっちのほうが資料が多く、私に向いているようです。 D、DDK?ごめんなさい、聞いたことはあるんですが、ちょっとわかんないです。 的違いかもしれないですがMASM32にwindows.incが入っているのは確認できました。 わかりやすいご回答をありがとうございました。