• ベストアンサー

アセンブラを実行したいのですが

パソコン初心者です。 Windows XPにアセンブラ「NASM」をダウンロードしました。 コマンドプロンプトで簡単なプログラムを実行しようと思います。 以下がプログラムです。 ; dispchar.asm mov ah,02 mov dl,31h int 21h mov ah,4ch mov al,0 int 21h コマンドプロンプトに「; dispchar.asm」と入力すると、内部コマンド、外部コマンドまたは操作可能なファイル、バッチファイルとして認識されていません」と出ます。 同様に、「mov ah,02」から入力しても同様のコメントが返ってきます。 プログラムを実行するにはどうすればよいでしょうか?

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

  • ベストアンサー
  • ballville
  • ベストアンサー率47% (233/487)
回答No.2

1 nasmw.exeのあるディレクトリでコマンドプロンプトを開きます。 2 notepad test.sを入力 3 メモ帳が立ち上がり「test,sを作成しますか」と聞かれるので「はい」   を選択 4 ; dispchar.asm   mov ah,02   mov dl,31h   int 21h   …   をメモ帳に打ち込み、保存して閉じる。 5 nasmw test.s -o test.exeをコマンドプロンプトに打ち込む。 6 dirで、test.exeができているか確認 7 testを実行し、コマンドプロンプトに1と表示されていれば成功

kgztabq
質問者

お礼

ご回答ありがとうございました。

kgztabq
質問者

補足

ご回答ありがとうございます。 6のtest.exeを作成するところまでできました。 しかし、7でコマンドプロンプトでtestを実行すると 「¥testは有効なWin32アプリケーションではありません」と表示され、コマンドプロンプトには、「アクセスが拒否されました」と出ます。 これはどういう意味でしょうか?また、どうすればよいですか?

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

その他の回答 (4)

回答No.5

参照URLを最初から読み進めていっていただくのが一番いいとは思いますが、 とりあえずこの件については「16ビットNASMプログラミング」章の中の「コンパイル」のところを良く読んでみてください。

参考URL:
http://ruffnex.oc.to/kenji/text/asmbook/
すると、全ての回答が全文表示されます。
回答No.4

少し勘違いなさっているかもしれません。前回の説明で、 >> 作成なさったプログラムは16bit と書きましたが、これは「作成されたプログラムだけ」が16bitという意味です。したがいまして、その他の作業は32bit環境で実行しなければなりません。 NASMでアセンブルするときは、通常(32bit環境)のコマンドプロンプトで行い、実行プログラム(何とか.exe)が生成されたら、16bitのコマンドプロンプトを起動して実行・・・という手順になります。お試しください。

すると、全ての回答が全文表示されます。
回答No.3

WinXPで通常起動されるコマンドプロンプトは、「32bit対応」だからではないでしょうか。以下のいずれかの方法で「16bitのコマンドプロンプト」を起動して実行した場合はいかがでしょうか。 (1)通常のコマンドプロンプトから“command”とタイプして出現するコマンドプロンプトで実行する。 (2)「スタート」から「ファイル名を指定して実行」をクリック。「名前」の欄に“command”とタイプして出現するコマンドプロンプトで実行する。 上記のいずれの方法でも、16bitのコマンドプロンプトが起動されます。作成なさったプログラムは16bitなので、これで動くと思いますが・・・。自身で実行していませんので、参考にしてください。 なお、この方法で起動したコマンドプロンプトをそのまま閉じようとするとエラーではありませんが、警告が出ます。そのまま閉じてもいいですが、以下の方法で終了してください。 (1)で起動したときは、16bitのコマンドプロンプト上で“exit”とタイプすると、32bitバージョンに戻ります。その後、ウィンドウを閉じることができます。 (2)の方法で起動したときは、同じく“exit”をタイプすることでコマンドプロンプトそのものが終了します。

kgztabq
質問者

補足

「16bitのコマンドプロンプト」で実行してみました。 回答No.2の方法でやってみると、プログラムを実行ファイルに生成する段階で「NASM:FATAL:UNABLE TO OPEN INPUT TEST.S」と表示されます。 これはどういう意味でしょうか?また、どう対処すればよいですか?

すると、全ての回答が全文表示されます。
  • koko_u_
  • ベストアンサー率18% (459/2509)
回答No.1

書いたプログラムソースをアセンブルして機械語にしないと実行できません。 コマンドプロンプトで簡単なプログラムを作成したい場合はアセンブリではなく別の選択肢を検討した方が良いでしょう。

kgztabq
質問者

お礼

ご回答ありがとうございました。

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

関連するQ&A