SoloCodigo

Programación General => ASM (Ensamblador) => Mensaje iniciado por: NILIS en Viernes 19 de Noviembre de 2004, 13:02

Título: Abrir Fichero Ubicado En Disketera
Publicado por: NILIS en Viernes 19 de Noviembre de 2004, 13:02
Buenas soy novato en esto y necesito ayuda, bueno el caso es que tengo que abrir un fichero ubicado en la disketera y en el caso de que haya error que muestre un mensaje por pantalla y se salga, y en caso contrario que se salga sin mostrar nada. Pero en este caso voy a tener el fichero en la disketera.
Pues el caso es que si hay error, en AX se devuelve el codigo del error y me sale que AX=2 (FICHERO NO ENCONTRADO) y por lo tanto siempre me sale por pantalla error de apertura, y yo lo ke kiero es que me lo abra, aki os dejo el código, echadle un vistazo haber si la he cagado en algo... :unsure:  :blink:


.MODEL small
.STACK 100h
.DATA
  RUTA DB 'A:\HOLA.TXT',0h
  ERROR DB 'Error de apertura',10,13,'$'  

.CODE
  ;macro para salir del programa
   Salir MACRO mensaje
         LEA DX,mensaje
         MOV AH,09h
         INT 21h
         MOV AH,4Ch
         INT 21h
         ENDM

  MOV AX,@DATA
  MOV DS,AX
  MOV ES,AX

  MOV AX,3D00h ;FUNCION ABRIR
  LEA DX,RUTA   ;carga direccion de memoria
  INT 21h
  JNC existefichero
   
  Salir ERROR ;SI CF=1 mostrar mensajede error
 
  existefichero:
   MOV AH,4Ch
   INT 21h
     
END
Título: Re: Abrir Fichero Ubicado En Disketera
Publicado por: Pablo123 en Lunes 22 de Noviembre de 2004, 04:55
no te pases.
Título: Re: Abrir Fichero Ubicado En Disketera
Publicado por: NILIS en Viernes 3 de Diciembre de 2004, 20:40
Ya lo solucione, se me olvido poner a donde apunta el segmento de datos de mi programa,  :P  ya furula :comp:
Título: Re: Abrir Fichero Ubicado En Disketera
Publicado por: AJJENJJO en Sábado 4 de Diciembre de 2004, 12:01
eso me suena a arquitectura II
Título: Re: Abrir Fichero Ubicado En Disketera
Publicado por: AJJENJJO en Sábado 4 de Diciembre de 2004, 12:02
este es el código que lo hace:

MODEL SMALL

.STACK 100h

.DATA
   ruta DB 'a:\hola.txt',0
   error1 DB 'ERROR DE APERTURA DEL FICHERO',13,10,'$'
   error DB 0   
   ident_fich DW 0

.CODE
   MOV AX,SEG ruta
   MOV DS,AX

   LEA DX,ruta      
   MOV AL,0      
   MOV AH,3Dh   ;función abrir fichero
   INT 21h
   JC mostrar_error1    ;si CF=1 mostramos el error de apertura
   MOV ident_fich,AX   

fin:
   MOV AH,4CH
   INT 21h

mostrar_error1:
   LEA DX,error1      ;mostramos el error de apertura
   MOV AH,9      ;función de escribir por pantalla
   INT 21h
   JMP fin

END