Haz una pregunta
  Foros de Electrónica » Diseño digital » Interfaces y Programación
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

15/11/2010 #1


Cómo se abre un fichero con la interrupción 21h?
Sobre la función para abrir fichero no entiendo qué es lo que hay que poner en DS y DX ni cómo debo ponerlos... mire lo que estaba leyendo:

__________________________________________________ _______________________________
INT 21H Función 3DH
Abrir Fichero

LLAMADA:
AH = 3DH
AL = Modo de acceso. Bits 0-2: Permiso de lectura/escritura.
000b Acceso de sólo lectura.
001b Acceso de sólo escritura.
010b Acceso de lectura/escritura.
Bit 3: 0b (Reservado).
Bits 4-6: Modo de compartición de Fichero
000b Sólo el programa actual puede acceder al archivo
001b Sólo el programa actual puede acceder al archivo.
010b Otro programa puede leer el archivo, pero no escribir en él.
011b Otro programa puede escribir en el archivo, pero no leerlo.
100b Otro programa puede leer y escribir en el archivo.
Bit 7: Bit de 'herencia' ó Handle-flag.
0b Si el handle se hereda por un programa hijo.
1b Si el handle no se hereda.
DS: DX = Segmento: Desplazamiento de una cadena ASCII con el nombre de fichero.

DEVUELVE:
Si se ejecutó correctamente Flag de acarreo (Cf) = 0
AX = Handle o manejador de fichero
Si NO se ejecutó correctamente: Flag de acarreo (Cf) = 1
AX = Código de error.

EFECTO: Mediante esta función se abre un fichero ya existente, y se devuelve un Handle para acceder al fichero en lo sucesivo.
__________________________________________________ _____________________________


El código que creí que era el correcto, inicialmente, es el siguiente:


mov ax,0b800h ;MUEVO A 'AX' EL VALOR DE SEGMENTO DE MEMORIA DE VIDEO
add si,si ;MULTIPLICO 'SI' POR DOS, PARA SABER EL VALOR OCUPADO EN MEMORIA DE VIDEO
sub di,si ;RESTO A EL DESPLAZAMIENTO TOTAL EN MEMORIA DE VIDEO, LO QUE SE OCUPO EN ESCRIBIR LA DIRECCION DEL FICHERO
mov ds,ax ;MUEVO A 'DS' EL VALOR SEGMENTO DE MEMORIA DE VIDEO, COMO REQUISITO PARA ABRIR EL FICHERO
mov dx,si ;MUEVO A 'DX' EL DESPLAZAMIENTO OCUPADA POR LA CADENA ASCII
mov ah,3dh ;FUNCION PARA ABRIR UN FICHERO
mov al,11000000b ;HANDLE NO HEREDADO, OTRO PROGRAMA PUEDE LEER Y ESCRIBIR ARCHIVO, BIT 3 ES RESERVADO, ACCESO DE SOLO LECTURA
int 21h


Qué es lo que me está faltando? No logro encontrar ningún ejemplo en internet que muestre cómo llamar la función realmente..
15/11/2010 #2

Avatar de Eduardo

ThydroC dijo: Ver Mensaje
Qué es lo que me está faltando? No logro encontrar ningún ejemplo en internet que muestre cómo llamar la función realmente..
La funcion la estas llamando bien, peeeeeero:
- En el buffer de video los caracteres se guardan en las direcciones pares y en la siguiente (impar) su atributo (color,subrayado,blink...) --> en lugar del string le estas pasando cualquier cosa.
- El string debe ser ASCIIZ, es decir debe estar terminado con un 0
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Buscar más temas sobre:
Lupa Interfaces y Programación

Lenguajes de programación, gestión y manejo de puertos

Cerrar
Foros de Electrónica » Diseño digital » Interfaces y Programación

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.