• ベストアンサー

masm32の設定

プログラミング初心者です。 この度アセンブリ言語を勉強しようと思い、MASM32 version10をダウンロードし、C:\masm32 というディレクトリにインストールしました。 次に、PATHにC:\masm32\binを追加して,mlコマンドのパスの設定をしました。 そして、以下のようなプログラムを作りました。 ファイルはD:\masm\hello.asmとしました。 ; hello.asm   include \masm32\include\masm32rt.inc   .code start:   print "hello, assembler",13,10   exit end start これをアセンブルしようと思い、 D:\masm>ml /c /coff hello.asm として実行すると Micorosoft (R) Macro Assembler Version 6.14.8444 Copyright (C) Microsoft Corp 1981-1997. All rights reserved. Assembling: hello.asm hello.asm(3) : fatal error A1000: cannnot open file : \masm32\include\masm32rt.inc と出てエラーになってしまいます。インクルードファイルにパスが通っていないのでしょうか。いろいろ調べてみましたが、分かりません。 どのようにすれば解決できるでしょうか。 力を貸してください。よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • php504
  • ベストアンサー率42% (926/2160)
回答No.1

違うドライブから実行するならドライブ名も必要では include C:\masm32\include\masm32rt.inc

pikacha
質問者

お礼

素早い回答をありがとうございます。 教えていただいた通りにやってみましたところ、(内容はインクルードファイルについてですが)先ほどとは違うエラーが出ました。 Micorosoft (R) Macro Assembler Version 6.14.8444 Copyright (C) Microsoft Corp 1981-1997. All rights reserved. Assembling: hello.asm C:\masm32\include\masm32rt.inc(38) : fatal error A1000: cannot open file : \masm32\include\windows.inc C:\masm32\include の中には、windows.incのファイルはありました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

D ドライブ上で実行するなら \masm32\include\windows.inc は D:\masm32\include\windows.inc の意味になると思う. 環境変数 INCLUDE をいじるという手もあるかな.

pikacha
質問者

お礼

回答をありがとうございます。 Cドライブ上で行ったところ、実行することができました。 Dドライブ上でも行うことができるよう、環境変数INCLUDEについて調べてみたいと思います。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • masm32がうまく動きません。

    アセンブリ言語を学ぼうとmasm32をインストールしました。 インストール手順は下記のように行いました。 ・masm32を C:\ にインストール ・masm32のbinフォルダの中にあるlink.exeをlink32.exeに名前を変更し、16bitリンカLINk.exeをbinフォルダに投入 ・システム環境変数に SET PATH=C:\MASM32\BIN;%PATH% SET INCLUDE=C:\MASM32\INCLUDE;%INCLUDE% SET LIB=C:\MASM32\LIB;%LIB% を書き加える。 ソースをC:\に保存し、アセンブラしてみると C:\>ml /c /Fl test.asm 'ml'は内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチファイルとして認識されていません。 と出ます。 ソースの保存場所をC:\masm32\binに変えて C:\masm32\bin>ml /c /Fl test.asm の形でアセンブラすることはできます。 ソースをC:\に保存した状態でアセンブラできない原因は何が 考えられるでしょうか?

  • MASMのincludeの設定

    MASMのincludeの設定 現在はソースのinclude \masm32\include\windows.incなどをフルパスに置換してコンパイルしています。 AUTOEXEC.BATのPATHにincludeフォルダのフルパスを追加するとソースの置換をせずにコンパイルできると思いますがAUTOEXEC.BATは変更したくありません。 MASMの設定ファイルやml.exeの設定ファイルなどでincludeフォルダのフルパスを指定するような解決方法はありませんか?

  • フリーソフトMASM32に関する質問

    MASM32は、環境変数は、自分で設定しなければならないみたいなので、環境変数を以下のように設定したのですが MSDOSで、コンパイルのコマンドを打つと、エラーがでます これはどうすれば解決するのでしょうか ついでに使ってるOSはMeです ↓が付け加えた環境変数と、コンパイルのコマンドです SET PATH=C:\MASM32\BIN;%PATH% SET INCLUDE=C:\MASM32\INCLUDE;%INCLUDE% SET LIB=C:\MASM32\LIB;%LIB% コマンド ml /c test.asm

  • MASMでexe作成

    Visual Cに入っていたMASM(ml.exe)で http://www7.plala.or.jp/keny01/asm/win32/#sub1-5 にあるソースをアセンブルすると、objファイルは正常に作成されるようですが、それをexeにする方法がわかりません。この時Visual Cは使用せず、mlをコマンドプロンプトから呼び出しています。mlに指定するオプションはよくわからない物が多いので何も指定していません。 具体的にどのようなソフトを使ってexeにすればよいのでしょうか。

  • NASMとMASMの違い

    NASMとMASNの違いってなんでしょうか? NASMは今日趣味でちょこっと触っただけです。 MASMは触ったことはありません。 実際に動くアセンブリ言語のソースを見てみようと思い、 海外のサイトから適当に*.asmのソースをダウンロードしました。 ソースを覘くと、 \masm32\include\windows.inc と明らかにMASMの何かを参照しています。 NASMではコンパイルできる気がしません。 NASMとMASMでは記述法方が変わるのでしょうか? NASMではMASMで書かれたソースはコンパイルは不可能なのでしょうか? 素人の私が根本的に勘違いしている可能性もあります。 ご存知の方がおられましたら、ご伝授よろしくお願いします。

  • アセンブリ言語の始め方

    Visual Studio 2012を使ってアセンブリ言語のプログラミングをしたいのですが、どうやって始めたらいいかわかりません。Kip Irvineという人のサイトにいって必要なものをダウンロードしたはずなのですが、デバッグするとエラーが出てしまいます。 Error 2 error MSB3721: The command "ml64.exe /c /nologo /Zi /Fo"x64\Release\main.obj" /I "c:\Irvine" /W3 /errorReport:prompt /Tamain.asm" exited with code 1. C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\BuildCustomizations\masm.targets 49 5 ASM_Project Error 1 error A1000: cannot open file : Irvine32.inc C:\IrvineExamplesVS2012\Examples\Project_sample\main.asm 3 1 ASM_Project これだけの情報ではわからないかも知れないですが、なにか必要な情報があったら追記します。 回答よろしくお願いします!

  • インクルードパスの設定

    必要に迫られてWebサーバをIISからApache(VBScriptからPHP)に変えました。 XP、php5.0.4,Apache2.0.53。C:\PHPを作成し、php.iniで設定を定義しています。 C:\PHP\includesを作成し、php.iniに ; Windows: "\path1;\path2" include_path = ".;c:\php\includes" を設定し、\includesの直下にRssWriter(rss10.inc)を設置しました。 PHPスクリプトの中のの2行目「require_once("rss.inc");」外部ライブラリをインクルードしている部分でエラーになります。 エラーは以下の内容です。 Fatal error: main() [function.require]: Failed opening required 'rss10.inc' (include_path='.;C:\php5\pear') in C:\Program Files\Apache Group\Apache2\htdocs\rss_output.php on line 2 エラーの中の「include_path='.;C:\php5\pear'」が私のPCの中では定義がちがいます。 http://localhost/phpinfo.phpでもinclude_pathはphp5になっています。 原因、ヒントなどおわかりの方よろしくお願いします。

    • ベストアンサー
    • PHP
  • コンパイラの設定

    Borland C++ Compiler 5.5をインストールしコンパイルしようとすると hello.c: エラー E2209 hello.c 1:インクルードファイル'stdio.h'をオープンできない。 警告 E8065 hello.c 4:プロタイプ宣言のない関数'printf'を呼び出し(関数 main()) *** 1 errors in Compile*** と出ててしまいました。 そして、過去にも同じような質問があり、 bcc32.cfgファイルに -I"c:\borland\Bcc55\include" -L"c:\borland\Bcc55\lib" を作成しても、何も変わらないのですが…。 教えて下さい。

  • GCCの#includeパスの設定方法?

    RedHat Linux 8.0をインストールしています。adaptec社のAHA1542を使いたいのですが、自動認識してくれません。 色々調べた結果、/etc/modules.confに alias scsi_hostadapter aha1542.o を記述する事で、使用可能と言う事がわかりました。 しかし私のシステムでは、aha1542のソースとヘッダーファイルはありますが、オブジェクトがありません。 GCCにてコンパイルさせたら、大量のエラーメッセージが出力されます。ソースを見ると、 1) #include <linux/******.h> 2) #include <asm/*****.h> 3) #include "*****.h" と3種類の#include文があります。 3)は、ソースと同一ディレクトリーでOKだと思いますが、他の2種類のパスの設定方法がわかりません。 <linux/ <asm/ の部分を自分のシステムに合ったパスに置き換える(GCCに認識させる)には、どうすれば良いのでしょうか? どうか、宜しくお願い致します!

  • BorlandC++5.5言語の環境変数変数の設定方法を教えて下さい。

    環境変数で質問があります。Bortland5.5の環境変数の設定方法を教えて下さい。 今までJavaとtomcatをDLしました。これらPathという名前で設定してきました。 Bortland5.5もPathで設定すればいいようですがどう設定していいのかよくわかりません。 私は「BCC」という名前で設定してみました。 是非に環境変数の設定方法を教えて下さい。 今回C++言語であるBortlandをDLしました。 ダウンロード先はprogram files です。先ほど見たところBinというファイルが DLされてました。環境変数の設定で BCC55をDLしたので「システム環境変数をBCC=C:\Program Files\Bin」 としてユーザー環境変数を「C:\Program Files\Java\jdk1.5.0_05\bin;%CATALINA_HOME%;\bin;%BCC%」 と入力したところエラーが表示されます。 「Hello.c」というファイルを作成しコンパイルすると以下のエラーが出ます。 ーーーーーーーーーーーーーーーーーーーーーーーー c:\october>bcc32 Hello.c Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland hello.c: エラー E2209 hello.c 1: インクルードファイル 'stdio.h' をオープンできない 警告 W8065 hello.c 4: プロトタイプ宣言のない関数 'printf' の呼び出し(関数 main ) 警告 W8070 hello.c 6: 関数は値を返すべき(関数 main ) *** 1 errors in Compile *** 実行するとエラーがでます。 c:\october>Hello 'Hello' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 と表示されます。 なお作成したファイルは以下のC言語です。ファイル名「Hello.c」 #include <stdio.h> main() { printf("Hello, C Program!\n"); }