NASMでソースプログラムのアセンブルができないです

このQ&Aのポイント
  • NASMでソースプログラムのアセンブルができないです。nasm2.08.01.win32.zipをダウンロードしコマンドプロンプトのpathを指定しメモ帳でソースプログラムを作成しましたが、アセンブルできません。OSはXPです。
  • NASMでソースプログラムのアセンブルができない問題について相談です。nasm2.08.01.win32.zipをダウンロードしましたが、コマンドプロンプトでのpath指定後、メモ帳で作成したソースプログラムをアセンブルするとunable to open input myfile.asmというエラーが出ます。
  • NASMでソースプログラムのアセンブルができません。nasm2.08.01.win32.zipを使用し、コマンドプロンプトでpathを指定しましたが、メモ帳で作成したソースプログラムをアセンブルするとunable to open input myfile.asmというエラーが表示されます。OSはXPです。アセンブリ言語の勉強をするために困っています。
回答を見る
  • ベストアンサー

NASMでソースプログラムのアセンブルが出来ないです。

nasm2.08.01.win32.zipをダウンロードしコマンドプロンプトのpathを指定しメモ帳でソースプログラムを ; myfile.asm  org 100H section .text start: mov ah, 02Hmov dl, 41H int 21H mov ah, 4CH int 21H と記述し拡張子asmで保存したものを コマンプロンプトでnasm -f bin myfile.asm -o myfile.com で開始しようするとunable to open input myfile.asmで出てしまい アセンブル出来ません、OSはXPです、アセンブリ言語の勉強をしたいのですがNASMが機能しないと始まらないので非常に困っています、 詳しい方にお力添え頂けたら幸いです、どうぞよろしくお願いします。

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

  • ベストアンサー
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

unable to open input myfile.asm とあるので myfile.asm が見付からない、ということです。 考えられるのは ・コマンドプロンプトでnasmを実行しているフォルダが違う(myfile.asmのあるフォルダになっていない) ・ファイル名が「myfile.asm.txt」になっている。 メモ帳を使った場合,勝手に.txtになってしまうことがあります。 explorerで拡張子を隠す設定にしていると、見落としがちです。 とりあえず、nasmを実行する前に「dir」と打って、myfile.asmがあるかどうか確認してはいかがでしょうか。

kurosuke55
質問者

お礼

なんとかこのエラーは回避出来たのですがまた新たな問題が出てしまいました、色々調べてみたいと思います、 回答ありがとうございました。

kurosuke55
質問者

補足

早速の回答ありがとうございます、 nasm.exeがあるフォルダはCドライブのマイドキュメントに保存してあるのですが、そのフォルダの中にmyfile.asmファイルも一緒に入れてあります、コマンドプロンプトのpathを実行するとちゃんとそのフォルダも認識しているようです、ファイル名は拡張子を表示する設定になっているようです、ソースファイルの拡張子はasmになっておりテキストのアイコンがASMと表示されています、またdirしてみたのですが 0 nasmと出てきましたmyfile.asmは見つかりませんでした、 これはちゃんと認識が出来ていないって事なのでしょうか? 何か特殊な設定方法等あるようでしたらお手数おかけしますがお力添え頂けないでしょうか、よろしくお願いします。

関連するQ&A

  • NASMについての質問です。

    NASMについての質問です。 mov ah, 02h mov dl, 31h int 21h という内容のASMファイルをつくり、それをNASMで実行ファイルにし、実行しようとしたのですが、うまくいきません。 コマンドプロンプトで、 nasm.exe -f bin test.asm -o myfile.com というコマンドを打って実行ファイルにしました。きちんとmyfile.comは作られるのですが、しかし、myfile.comを実行しても何も表示されませんでした。(なぜかコマンドプロンプトの文字のフォントが変わりましたが) それならと思い、今度は、 nasm.exe -f bin test.asm -o myfile.exe というコマンドを打ち、実行してみました。ちゃんとmyfile.exeは作成されるのですが、やはりうまく実行できません。上のソースコードなら、文字が一文字表示されるはずですが、なにも表示されませんでした(前回と同じくコマンドプロンプトのフォントが変わっただけです)。 当方、一応コンピュータ系の専門学校に通っているのですが、アセンブラのことについては完全な初心者です。NASMをさわるのも初めてです。わけがわからなくて困っています。 どうにかしてアセンブリ言語のコードを実行ファイルにして、それを動かしてみたいのですが、どうすればいいでしょうか? 追伸 長文すいません。

  • NASMが動かない。

    NASMをwindows7にインストールしました。 次のようなソースをmathandcomp.asmというファイル名で保存し、 コマンド・プロンプトで nasm mathandcomp.asm -o mathandcomp.com のようにすると、mathandcomp.comが生成されるそうですが、エラーが出てしまいます。 下記のメッセージが出るはずなんですが、手順をおしえていただけますか。 NASMのバージョンはnasm-2.08.01です。 http://www.nasm.us/ org 100h mov dx,mesg mov ah,9 int 21h mov ah,4Ch int 21h mesg db 'Math with PC,PC through Math! How wonderful!',0Dh,0Ah,'$'

  • nasmでhello, world

    FreeBSD4.6.2にを使っているのですが、 以下のソースはコンパイル、実行はできるのですが 、 hello, worldが画面上に表示されません。 ebxに代入する標準出力って1であっていますよね?? どこが間違っているのかわかりません。教えて下さい。 アセンブルは nasm -f elf hello.asm ld hello.o ./a.out とやりました。 以下が ソースです。 section .data msg db "Hello, world!" section .text global _start _start: mov eax, 4 mov ebx, 1 mov ecx, msg mov edx, 13 int 80h mov eax, 1 mov ebx, 0 int 80h

  • NASM(独習アセンブラのサンプルソース)について

    独習アセンブラ初版5刷のサンプルソース(リスト6.7、102p)での疑問です 下の方にあるコメントアウトしているputc関数って何のためにあるんですか? どこからも呼び出してないのでいらないと思うのですが… アセンブラはNASMです ※本に書かれてるソースはコメントアウトしてません、コメントアウトしてもアセンブルできました bits 16 org 100h mov dx,sfile mov al,0 mov ah,3dh int 21h jc endquit mov [ifh],ax mov dx,dfile mov cx,0 mov ah,3ch int 21h jc endquit mov [ofh],ax readb: mov bx,[ifh] mov dx,buf mov cx,1 mov ah,3fh int 21h test cx,ax jz endquit jc endquit mov bx,[ofh] mov dx,buf mov cx,1 mov ah,40h int 21h jmp readb endquit: mov bx,[ifh] mov ah,3eh int 21h mov bx,[ofh] mov ah,3eh int 21h mov ax,4c00h int 21h ;putc: ; push ax ; mov ah,2h ; int 21h ; pop ax ; ret ifh dw 0 ofh dw 0 sfile db "srcfile.txt",0 dfile db "destfile.txt",0 buf resb 2 私が思うにリスト6.6(100p)のreadbラベルのところでこれを呼び出してるのでソースを流用して消し忘れてるだけなんでしょうか?

  • アセンブリ言語で。

    下のようなソースをアセンブルすると 6:error: parser: instruction expected という、エラーが出ます。 mov ah,2 mov dl,DATA int 21h mov ax,4c00h int 21h DATA byte 'A' 6行目に問題があるようなので下のように書き直したらきちんと動作しました。どうして、上のような記述ではうまくいかないのでしょうか?? mov ah,2 mov dl,'A' int 21h mov ax,4c00h int 21h 環境はwindowsXPでnasmとalinkを使っています。 nasmw test.asm -fobj alink test.obj -oEXEとしてアセンブルしました。 わかる方お願いいたします。

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

    パソコン初心者です。 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」から入力しても同様のコメントが返ってきます。 プログラムを実行するにはどうすればよいでしょうか?

  • NASMの使い方について。

    OSはXPです、メモ帳で作成したプログラムファイルをコマンドプロンプトでnasm -f bin myfile.asm -o myfile.comとコマンドしてもアセンブルされないんです、エラー等は何もでませんのでnasmは起動してると思うのですが、アセンブルされたファイルは元のファイルに上書きされるのでしょうか?または別のディレクトリに出来るのでしょうか? NASMに詳しい方いましたら1からの手順等教えて頂けませんか? 宜しくお願いします。

  • アセンブラでコマンドライン引数を取得する方法

    50歳からアセンブラプログラムを趣味で勉強しております。 一つ壁に当たりました。 コマンドライン引数が何処にあるのかわかりません。 Windows7で nasm -fwin32 test.asm alink -oPE -subsys console test.obj crtdll.lib -entry start アセンブル、リンクしています。 test.asm extern printf section .text global _start _start: push ebp mov ebp,esp mov eax,[ebp+8] push eax mov eax,A101 push eax call printf add esp,8 pop ebp ret section .data A101: db 'argc = %d', 10, 0 で、argc = 2147340288 と表示されます。 どうぞよろしくお願いいたします。

  • MASM実行エラー

    mov dx, 1234 mov ah, 09h int 21h これでMS-DOSプロンプトがピーと鳴ってしまいました。 mov dx, ラベル のようにラベルを使う以外の方法はありますか?

  • コマンドプロンプトのデバッガ

    以下のように,コマンドプロンプトのDEBUGコマンドでアセンブリ言語を書いたのですが,COMファイルとして保存する方法(http://wisdom.sakura.ne.jp/programming/asm/assembly29.html)が分かりません。お願いします! debug a 100 mov ah,a mov dx,9100 mov byte ptr[9100],20 int 21 ret a 200 sub bl,30 ret a 300 mov bl,byte ptr[9103] cmp bl,2b je 318 cmp bl,2d je 31a cmp bl,2a je 31a cmp bl,2f je 31a add al,dl ret a 400 mov ah,0 mov dl,a div dl mov byte ptr[9200],0d mov byte ptr[9201],0a add al,30 mov byte ptr[9202],al add ah,30 mov byte ptr[9203],ah mov byte ptr[9204],24 mov ah,9 mov dx,9200 int 21 ret a 9000 call 100 mov bl,byte ptr[9102] call 200 mov al,bl mov bl,byte ptr[9104] call 200 mov dl,bl call 300 call 400 mov ah,4c mov al,0 int 21 g =9000 9021

専門家に質問してみよう