brandon666
Usuario
![una cosa que no podes hacer con ningun programa [muy bueno]](https://storage.posteamelo.com/assets-adonis/assets/2018/06/22/space-Z4bKQjN_Y0F.webp)
bueno hace poco estaba descargando el juice 2 y como son casi 2 gb descarge solo 12 partes y eran casi 25 bueno lo que les voy a enseñar sirve solo para isos. Descargan La Mitad De Los Links osea 12 partes de 24 bueno ahora solo descompriman bueno ahora les ba a decir que insertes la otra parte pero no solo abran mi Pc o Mi Equipo y bayan a donde estaban descomprimiendo la iso bueno ahora copian la iso y la pegan en otro lado y la montan y listo bueno espero que les haya gustado mi tutorial de como poder cagar a los .RAR CHAU

ASM POR AEsoft. (lección 10). -------------------------------------------------------------------- - funciones DOS: - INT 21H (DOS-API) - funciones BIOS: - INT 10H (FUNCIONES DEL DRIVER DE VIDEO) - INT 16H (FUNCIONES DEL DRIVER DE TECLADO) -------------------------------------------------------------------- Hola de nuevo a todos los seguidores del CURSO DE ASM. En las lecciones 7 y 8 hemos visto las más importantes instrucciones con que contamos en Ensamblador del 8086. En próximas lecciones iremos viendo el resto de instrucciones, según las vayamos necesitando. En esta lección vamos a ver algo tan importante como ese conjunto de instrucciones. vamos a ver las principales interrupciones software (funciones) que tenemos disponibles para usar en nuestros programas. Mediante la llamada a una de estas funciones podemos leer un fichero, cambiar de modo de vídeo, aceptar un carácter desde teclado, etc, etc. Estas interrupciones software nos permiten trabajar con los distintos subsistemas (teclado, vídeo, discos duros y disqueteras, etc..) de una forma relativamente cómoda. Nos ofrecen las rutinas básicas para trabajar con ellos. Para cada uno de los tres servicios más importantes de cara al programador (funciones DOS, funciones de pantalla y funciones de teclado), vamos a enumerar las funciones fundamentales para empezar a trabajar. Repito, la lista de funciones que se expone a lo largo de la lección, no es completa. Para eso existen libros y manuales especiales. Al final de la lección se ofrece bibliografía suficiente. Conforme vaya avanzando el nivel del curso iremos viendo nuevos servicios como la INT 33H (controlador del ratón), la INT 13H (Controlador de disco), etc... - funciones DOS --------------- Las funciones DOS son todas aquellas interrupciones software de las que está provisto el Sistema Operativo. Estas funciones, entre las que se encuentra la INT 21H (la más importante de todas), son utilizadas por el programador, y por el propio sistema operativo para acceder a los distintos subsistemas del procesador como son discos, teclado, etc... Usaremos estas funciones cuando queramos: crear ficheros, borrar ficheros, leer ficheros, solicitar memoria libre para trabajar con los datos de nuestros programas, dejar programas residentes, etc, etc... En definitiva, las funciones del DOS nos proporcionan un vínculo de comunicación cómodo y seguro entre nuestro programa y los diferentes subsistemas con los que podemos trabajar. Veremos que esto también nos lo proporcionan las funciones BIOS, pero a otro nivel más bajo. Por ejemplo, mientras que las funciones DOS nos permiten trabajar con ficheros, las funciones BIOS sólo nos permiten trabajar con discos en función a pistas, sectores, etc. Es decir, más a bajo nivel. En una próxima lección veremos la estructura interna de los discos: Tanto la estructura física: cabezas (caras), cilindros (pistas), sectores.... Como la estructura lógica que usa el MS-DOS: BOOT RECORD, FAT, DIRECTORIO, CONTENIDO DE FICHEROS. ¦ +---------------+ (sector de arranque) (tabla de localización de ficheros) Y volviendo a lo que nos ocupa: las funciones BIOS nos facilitan el trabajo con la parte física: pistas, sectores, etc... Mientras que las funciones DOS, nos permiten trabajar con la parte lógica: ficheros. Por supuesto, al trabajar con la parte lógica (ficheros), el DOS debe hacer uso de la parte física ó sectores (que es donde están almacenados los ficheros). Para este trabajo, las mismas funciones DOS usan las funciones BIOS. Hemos dicho que la más importante de las funciones DOS es la INT 21H. Pues bien, aparte de ésta, hay algunas más como son: - INT 20H (Terminación de proceso). - INT 22H (Dirección del gestor de terminación del programa en curso). - INT 23H (Dirección del gestor de CTRL+C). - INT 24H (Dirección del gestor de errores críticos). - INT 25H (Lectura de sectores de disco). - INT 26H (Escritura de sectores a disco). - INT 27H (Dejar programa residente y salir). - INT 28H a INT 2EH (Reservadas. No está permitido su uso al programador). - INT 2FH (Interrupción múltiple ó Interrupción del Multiplexor). La INT 20H es una de las muchas maneras de finalizar un programa. Las interrupciones 22H, 23H y 24H las estudiaremos en la próxima lección, cuando estudiemos la construcción de programas en ASM, y la gestión de los mismos por parte del DOS. Las interrupciones 25H y 26H se utilizan para leer y escribir sectores de disco. Hemos visto antes que era la BIOS la que tenía este cometido. La razón de ser de estas dos funciones es que utilizan un diferente formato de referencia a los sectores. La BIOS trata a los sectores del disco de forma física: Sector X del Cilindro Y de la Cabeza Z... Mientras que el DOS enumera secuencialmente todos los sectores del disco, desde (el sector 1 del cilindro 0 de la cabeza 0), hasta el último sector del disco. Referenciando así a cada sector mediante un sólo número de sector lógico. La INT 27H es un método antiguo de dejar programas residentes en memoria. No se suele utilizar. En su lugar, disponemos de la función 31h de la INT 21H, que veremos a continuación. Las funciones reservadas han sido pensadas por los programadores del DOS, para uso exclusivo del mismo DOS, o son funciones vacías (sin contenido) en previsión para un aumento de funciones en una próxima versión del DOS. La interrupción 2FH ó interrupción del Multiplexor, proporciona información acerca del estado de ciertos programas residentes del DOS, como son DOSKEY, PRINT, APPEND, SHARE, etc. Podremos saber si están instalados o no, y en caso de que estén instalados, la INT 2FH nos sirve como un interfaz ó vínculo de comunicación con estos programas residentes. - INT 21H (DOS-API) ------------------- La mayoría de servicios ó funciones del sistema operativo MS-DOS se obtienen a través de la interrupción software 21H. Es por esto que se le denomina DOS-API: DOS-APPLICATION-PROGRAM-INTERFACE, ó Interfaz entre programas de aplicaciones y el MS-DOS. La INT 21H está compuesta por un grupo de funciones. Cuando se accede a la INT 21H, hay que indicar el número de función que queremos ejecutar. En determinadas casos, una función es tan compleja que necesita de varias subfunciones para poder desempeñar todo su trabajo. En este caso, deberemos indicar el número de esa función, y también el número de la subfunción a la que queremos acceder dentro de esa función. La llamada a la INT 21H se realizará como sigue: + Introducimos en (AH) el número de función a la que deseamos acceder. + En caso de que deseemos acceder a una subfunción dentro de una función, debemos indicarlo introduciendo en (AL) el número de esa subfunción. + Llamar a la INT 21H. Aparte de los registros mencionados (AH y AL), la mayoría de funciones requieren de otros registros para realizar su trabajo. En estos registros se puede almacenar el comienzo de un buffer de disco al trabajar con ficheros; el comienzo de una cadena de texto para sacar por pantalla; etc.. Un ejemplo: Queremos usar la función 9h de la INT 21H para sacar por pantalla una cadena de texto. Dicha cadena de texto se encuentra almacenada a continuación de la etiqueta Cadena_De_Texto. Procederemos como sigue: Mov AH,9 ;indicamos número de función a ejecutar. Mov DX,offset cadena_de_texto ;introducimos en DX la dirección donde ;se encuentra la cadena en cuestión. INT 21H ;llamamos a la INT 21H, la cual ejecutará la función 9h. A continuación vamos a ver las funciones básicas dentro de cada grupo para empezar a programar en ensamblador. No las vamos a ver todas, porque muchas de ellas ya no se usan, como son las funciones de acceso a ficheros por el método FCB (que veremos cuando hablemos de la estructura de los discos). Tampoco veremos en un principio aquellas funciones que no vamos a utilizar hasta pasado un buen tiempo, como son funciones relacionadas con la información sobre el país, página de códigos, y unas pocas más que sólo rara vez se utilizan. De cualquier modo, siempre es interesante poder conocerlas todas, así que si teneis oportunidad, hay por ahí manuales, libros, etc, en los que vienen todas las funciones detalladas. --------------- Funciones de la INT 21H ------------------- * Funciones de Entrada/Salida de caracteres * +---------------------------------------------------------------------+ ¦ INT 21H Función 01H ¦ ¦ +-----------------------------------------¦ ¦ ¦ Entrada de Carácter con Eco (ó salida) ¦ ¦ +-----------------------------------------+ ¦ ¦ ¦ + LLAMADA: ¦ ¦ AH = 01H ¦ ¦ ¦ + DEVUELVE: ¦ ¦ AL = Código ASCII del Carácter leído. ¦ ¦ ¦ + EFECTO: ¦ ¦ ¦ ¦ Se lee un carácter del dispositivo de entrada estándar, y se ¦ ¦ envía al dispositivo estándar de salida. Si al llamar a la ¦ ¦ función no había ningún carácter disponible, se esperará a que ¦ ¦ lo haya. ¦ ¦ ¦ ¦ Normalmente el dispositivo estándar de entrada es el teclado, ¦ ¦ y el dispositivo estándar de salida es la pantalla. Es lo que ¦ ¦ se conoce en MS-DOS como CON (de consola: teclado y pantalla). ¦ ¦ ¦ ¦ Tanto la Entrada como la Salida pueden ser redireccionadas. ¦ ¦ Ya veremos lo que eso significa con más detalle. Sirva ahora que ¦ ¦ es posible que los caracteres se puedan tomar de un dispositivo ¦ ¦ diferente al teclado, y se puedan enviar a un dispositivo ¦ ¦ diferente de la pantalla. ¦ ¦ ¦ ¦ Es decir, que como entrada podemos tener los caracteres de un ¦ ¦ fichero, y como salida podríamos tener la impresora. ¦ ¦ ¦ + VERSION DE MS-DOS: 1.0 ó superior. ¦ ¦ ¦ + NOTAS: En la versión 1.0, se toma el carácter desde teclado, y se ¦ ¦ envía hacia la pantalla. En la versión 1.0 del DOS, esta ¦ ¦ función no admitía ninguna redirección de Entrada/Salida. ¦ ¦ ¦ +---------------------------------------------------------------------+ +---------------------------------------------------------------------+ ¦ INT 21H Función 02H ¦ ¦ +-----------------------------------------¦ ¦ ¦ Salida de Carácter ¦ ¦ +-----------------------------------------+ ¦ ¦ ¦ + LLAMADA: ¦ ¦ AH = 02H ¦ ¦ DL = Código ASCII a enviar al dispositivo de salida. ¦ + DEVUELVE: ¦ ¦ NADA. ¦ ¦ ¦ + EFECTO: ¦ ¦ ¦ ¦ Se envía el carácter depositado en el registro DL al dispositivo ¦ ¦ estándar de salida. ¦ ¦ ¦ ¦ La salida puede ser redireccionada hacia un fichero, impresora, etc ¦ ¦ ¦ + VERSION DE MS-DOS: 1.0 ó superior. ¦ ¦ ¦ + NOTAS: En la versión 1.0, se envía el carácter hacia la pantalla. ¦ ¦ En la versión 1.0 del DOS, esta función no admitía ¦ ¦ redirección de Salida. ¦ ¦ ¦ +---------------------------------------------------------------------+ +---------------------------------------------------------------------+ ¦ INT 21H Función 05H ¦ ¦ +-----------------------------------------¦ ¦ ¦ Envío de Carácter a la Impresora ¦ ¦ +-----------------------------------------+ ¦ ¦ ¦ + LLAMADA: ¦ ¦ AH = 05H ¦ ¦ DL = Código ASCII a enviar al dispositivo de salida. ¦ + DEVUELVE: ¦ ¦ NADA. ¦ ¦ ¦ + EFECTO: ¦ ¦ Se envía el carácter depositado en DL al puerto paralelo. ¦ ¦ Si no se ha redireccionado la salida, el dispositivo por defecto ¦ ¦ en el puerto paralelo de salida (LPT1 ó PRN) es la impresora. ¦ ¦ ¦ + VERSION DE MS-DOS: 1.0 ó superior. ¦ ¦ ¦ + NOTAS: En la versión 1.0, se envía el carácter hacia el primer ¦ ¦ dispositivo de listado (PRN ó LPT1). ¦ ¦ En versiones posteriores de MS-DOS, se puede redireccionar ¦ ¦ la salida. ¦ ¦ ¦ +---------------------------------------------------------------------+ +---------------------------------------------------------------------+ ¦ INT 21H Función 09H ¦ ¦ +-------------------------------------------¦ ¦ ¦ Visualización de una cadena de caracteres ¦ ¦ +-------------------------------------------+ ¦ ¦ ¦ + LLAMADA: ¦ ¦ AH = 09H ¦ ¦ DSX = Segementoesplazamiento de la cadena a visualizar. ¦ ¦ DS debe apuntar al segmento donde se encuentra la cadena. ¦ ¦ DX debe contener el desplazamiento de la cadena dentro de ¦ ¦ ese segmento. ¦ + DEVUELVE: ¦ ¦ NADA. ¦ ¦ ¦ + EFECTO: ¦ ¦ Se envía una cadena de caracteres al dispositivo estándar de salida.¦ ¦ Si no se ha redireccionado la salida, la cadena se enviará a la ¦ ¦ pantalla. ¦ ¦ ¦ + VERSION DE MS-DOS: 1.0 ó superior. ¦ ¦ ¦ + NOTAS: La cadena debe finalizar con un carácter $ (24H), para que ¦ ¦ el DOS pueda reconocer el fin de la cadena. ¦ ¦ ¦ +---------------------------------------------------------------------+ +---------------------------------------------------------------------+ ¦ INT 21H Función 0BH ¦ ¦ +-------------------------------------------¦ ¦ ¦ Comprobación del estado de la entrada ¦ ¦ +-------------------------------------------+ ¦ ¦ ¦ + LLAMADA: ¦ ¦ AH = 0BH ¦ + DEVUELVE: ¦ ¦ AL = 00H si no hay carácter disponible. ¦ ¦ AL = FFH si hay algún carácter disponible. ¦ ¦ ¦ + EFECTO: ¦ ¦ Se comprueba si hay algún carácter procedente del dispositivo ¦ ¦ estándar de entrada. La entrada puede ser redireccionada. ¦ ¦ Si no hay tal redirección, se comprueba el buffer de teclado. ¦ ¦ ¦ + VERSION DE MS-DOS: 1.0 ó superior. ¦ ¦ ¦ + NOTAS: En caso de que haya un carácter disponible, sucesivas ¦ ¦ llamadas a esta función seguirán dando un valor verdadero ¦ ¦ hasta que se recoja el carácter con alguna de las funciones ¦ ¦ de entrada de carácter, como la función 01h. ¦ ¦ ¦ +---------------------------------------------------------------------+ * Funciones de manejo de disco * +---------------------------------------------------------------------+ ¦ INT 21H Función 0EH ¦ ¦ +-------------------------------------------¦ ¦ ¦ Selección de disco ¦ ¦ +-------------------------------------------+ ¦ ¦ ¦ + LLAMADA: ¦ ¦ AH = 0EH ¦ ¦ DL = Código de la unidad (0=A , 1=B , etc...) ¦ + DEVUELVE: ¦ ¦ AL = Número de unidades lógicas del sistema. ¦ ¦ ¦ + EFECTO: ¦ ¦ Selecciona una unidad de disco para que se convierta en la unidad ¦ ¦ por defecto o actual. Ofrece además información acerca del número ¦ ¦ total de unidades lógicas del sistema. ¦ ¦ ¦ + VERSION DE MS-DOS: 1.0 ó superior. ¦ ¦ ¦ + NOTAS: Una unidad física como un disco duro puede estar particionada¦ ¦ en varias unidades lógicas designadas por C , D, E ,etc. ¦ ¦ ¦ +---------------------------------------------------------------------+ +---------------------------------------------------------------------+ ¦ INT 21H Función 19H ¦ ¦ +-------------------------------------------¦ ¦ ¦ Obtener disco actual ¦ ¦ +-------------------------------------------+ ¦ ¦ ¦ + LLAMADA: ¦ ¦ AH = 19H ¦ + DEVUELVE: ¦ ¦ AL = Código de la unidad actual (0=A , 1=B , etc...) ¦ ¦ ¦ + EFECTO: ¦ ¦ Devuelve el código de la unidad de disco activa o por defecto. ¦ ¦ ¦ + VERSION DE MS-DOS: 1.0 ó superior. ¦ ¦ ¦ + NOTAS: Las mismas que para la función 0EH ¦ ¦ ¦ +---------------------------------------------------------------------+ * Funciones de gestión de directorios * +---------------------------------------------------------------------+ ¦ INT 21H Función 39H ¦ ¦ +-------------------------------------------¦ ¦ ¦ Crear directorio ¦ ¦ +-------------------------------------------+ ¦ ¦ ¦ + LLAMADA: ¦ ¦ AH = 39H ¦ ¦ DSX = Segementoesplazamiento de una cadena ASCIIZ ¦ ¦ con el nombre del directorio. ¦ + DEVUELVE: ¦ ¦ Si se ejecutó correctamente: ¦ ¦ Flag de acarreo (Cf) = 0 ¦ ¦ ¦ ¦ Si NO se ejecutó correctamente: ¦ ¦ Flag de acarreo (Cf) = 1 ¦ ¦ AX = Código de error. ¦ ¦ ¦ + EFECTO: ¦ ¦ Se crea un nuevo directorio usando la unidad de disco y la vía de ¦ ¦ acceso especificada en la cadena ASCIIZ. ¦ ¦ ¦ + VERSION DE MS-DOS: 2.0 ó superior. ¦ ¦ ¦ + NOTAS: En la versión 1.0 del MS-DOS no existían subdirectorios. ¦ ¦ ASCIIZ es una cadena de códigos ASCII que termina con el ¦ ¦ código ASCII 0h. ¦ ¦ Así, si queremos crear un subdirectorio llamado PROGS dentro ¦ ¦ del directorio DOS, la cadena ASCIIZ se definiría así: ¦ ¦ Nombre_del_directorio db 'C:\DOS\PROGS',0 ¦ ¦ Si en el momento de llamar a la función, la unidad activa es ¦ ¦ la unidad C, no es necesario indicarlo. De igual forma, si ¦ ¦ nos encontramos en el directorio DOS, tampoco necesitamos ¦ ¦ indicarlo. ¦ ¦ ¦ ¦ Esta función se abortará (indicándolo mediante Cf y AX) si: ¦ ¦ -la vía de acceso es incorrecta. ¦ ¦ -el directorio a crear ya existe. ¦ ¦ -el directorio a crear es un subdirectorio del Raiz, ¦ ¦ y éste ya está lleno. ¦ ¦ ¦ +---------------------------------------------------------------------+ +---------------------------------------------------------------------+ ¦ INT 21H Función 3AH ¦ ¦ +-------------------------------------------¦ ¦ ¦ Borrar directorio ¦ ¦ +-------------------------------------------+ ¦ ¦ ¦ + LLAMADA: ¦ ¦ AH = 3AH ¦ ¦ DSX = Segementoesplazamiento de una cadena ASCIIZ ¦ ¦ con el nombre del directorio a borrar. ¦ + DEVUELVE: ¦ ¦ Si se ejecutó correctamente: ¦ ¦ Flag de acarreo (Cf) = 0 ¦ ¦ ¦ ¦ Si NO se ejecutó correctamente: ¦ ¦ Flag de acarreo (Cf) = 1 ¦ ¦ AX = Código de error. ¦ ¦ ¦ + EFECTO: ¦ ¦ Se elimina el directorio indicado de la unidad de disco y la vía ¦ ¦ de acceso especificada en la cadena ASCIIZ. ¦ ¦ ¦ + VERSION DE MS-DOS: 2.0 ó superior. ¦ ¦ ¦ + NOTAS: En la versión 1.0 del MS-DOS no existían subdirectorios. ¦ ¦ ¦ ¦ Esta función se abortará (indicándolo mediante Cf y AX) si: ¦ ¦ -la vía de acceso es incorrecta. ¦ ¦ -el directorio especificado es el directorio activo. ¦ ¦ -el directorio especificado no está vacío, es decir, ¦ ¦ contiene algún fichero. ¦ ¦ ¦ +---------------------------------------------------------------------+ +---------------------------------------------------------------------+ ¦ INT 21H Función 3BH ¦ ¦ +-------------------------------------------¦ ¦ ¦ Establecer directorio actual ¦ ¦ +-------------------------------------------+ ¦ ¦ ¦ + LLAMADA: ¦ ¦ AH = 3BH ¦ ¦ DSX = Segementoesplazamiento de una cadena ASCIIZ ¦ ¦ con el nombre del directorio. ¦ + DEVUELVE: ¦ ¦ Si se ejecutó correctamente: ¦ ¦ Flag de acarreo (Cf) = 0 ¦ ¦ ¦ ¦ Si NO se ejecutó correctamente: ¦ ¦ Flag de acarreo (Cf) = 1 ¦ ¦ AX = Código de error. ¦ ¦ ¦ + EFECTO: ¦ ¦ Establece como directorio actual el indicado mediante la cadena ¦ ¦ ASCIIZ. ¦ ¦ ¦ + VERSION DE MS-DOS: 2.0 ó superior. ¦ ¦ ¦ + NOTAS: En la versión 1.0 del MS-DOS no existían subdirectorios. ¦ ¦ ¦ ¦ Esta función se abortará (indicándolo mediante Cf y AX) si ¦ ¦ la vía de acceso especificada en la cadena ASCIIZ es ¦ ¦ incorrecta. ¦ ¦ ¦ +---------------------------------------------------------------------+ +---------------------------------------------------------------------+ ¦ INT 21H Función 47H ¦ ¦ +-------------------------------------------¦ ¦ ¦ Obtener directorio actual ¦ ¦ +-------------------------------------------+ ¦ ¦ ¦ + LLAMADA: ¦ ¦ AH = 47H ¦ ¦ DL = Código de la unidad (0 = unidad por defecto, actual; ¦ ¦ 1 = A ; 2 = B ; etc...) ¦ ¦ DS:SI = Segmentoesplazamiento de un buffer de 64 bytes. ¦ ¦ Este buffer contendrá el nombre del directorio, con ¦ ¦ toda la vía de acceso al mismo, en forma de cadena ¦ ¦ ASCIIZ. ¦ + DEVUELVE: ¦ ¦ Si se ejecutó correctamente: ¦ ¦ Flag de acarreo (Cf) = 0 ¦ ¦ ¦ ¦ Si NO se ejecutó correctamente: ¦ ¦ Flag de acarreo (Cf) = 1 ¦ ¦ AX = Código de error. ¦ ¦ ¦ + EFECTO: ¦ ¦ Establece como directorio actual el indicado mediante la cadena ¦ ¦ ASCIIZ. ¦ ¦ ¦ + VERSION DE MS-DOS: 2.0 ó superior. ¦ ¦ ¦ + NOTAS: En la versión 1.0 del MS-DOS no existían subdirectorios. ¦ ¦ ¦ ¦ Esta función se abortará (indicándolo mediante Cf y AX) si ¦ ¦ el código de unidad no es válido. Es decir, no se especifica ¦ ¦ una unidad válida. ¦ ¦ ¦ ¦ La vía de acceso que antecede al nombre del directorio no ¦ ¦ incluye el código '\' (directorio raiz), ni el identificador ¦ ¦ de la unidad. ¦ ¦ El nombre de directorio acaba con el carácter 00h que cierra ¦ ¦ la cadena ASCIIZ. ¦ ¦ ¦ +---------------------------------------------------------------------+ * Funciones de manejo de Ficheros * +---------------------------------------------------------------------+ ¦ INT 21H Función 3CH ¦ ¦ +-------------------------------------------¦ ¦ ¦ Crear Fichero ¦ ¦ +-------------------------------------------+ ¦ ¦ ¦ + LLAMADA: ¦ ¦ AH = 3CH ¦ ¦ CX = Atributos del fichero: ¦ ¦ 00H Fichero Normal. ¦ ¦ 01H Fichero de Sólo Lectura. ¦ ¦ 02H Fichero Oculto. ¦ ¦ 03H Fichero de Sistema. ¦ ¦ DSX = Segmentoesplazamiento de una cadena ASCIIZ 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: ¦ ¦ Si el fichero indicado mediante la cadena ASCIIZ ya existía, ¦ ¦ entonces se vacía su contenido, quedando con longitud 0. ¦ ¦ Si el fichero no existía, entonces se crea. ¦ ¦ En ambos casos, el fichero se abre, y se devuelve un Handle ó ¦ ¦ manejador de fichero para los restantes accesos a dicho fichero. ¦ ¦ ¦ + VERSION DE MS-DOS: 2.0 ó superior. ¦ ¦ ¦ + NOTAS: ¦ ¦ Esta función se abortará (indicándolo mediante Cf y AX) si: ¦ ¦ -La vía de acceso indicada en la cadena ASCIIZ es errónea. ¦ ¦ -Se va a crear el fichero en el directorio raiz y éste ya ¦ ¦ está lleno. ¦ ¦ ¦ ¦ El Handle es un número mediante el cual se referencia a un ¦ ¦ fichero dado. De esta forma es más cómodo trabajar con ¦ ¦ ficheros. Para cada uno de los ficheros con que trabajemos, ¦ ¦ tendremos un número (Handle) que lo representará. ¦ ¦ ¦ +---------------------------------------------------------------------+ +---------------------------------------------------------------------+ ¦ 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. ¦ ¦ ¦ ¦ DSX = Segmentoesplazamiento de una cadena ASCIIZ 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 habre un fichero ya existente, y se ¦ ¦ devuelve un Handle para acceder al fichero en lo sucesivo. ¦ ¦ ¦ ¦ ¦ + VERSION DE MS-DOS: 2.0 ó superior. ¦ ¦ ¦ + NOTAS: ¦ ¦ El puntero de fichero se coloca sobre el primer byte del ¦ ¦ fichero. ¦ ¦ ¦ +---------------------------------------------------------------------+ +---------------------------------------------------------------------+ ¦ INT 21H Función 3EH ¦ ¦ +-------------------------------------------¦ ¦ ¦ Cerrar Fichero ¦ ¦ +-------------------------------------------+ ¦ ¦ ¦ + LLAMADA: ¦ ¦ AH = 3EH ¦ ¦ BX = Handle. ¦ ¦ ¦ + DEVUELVE: ¦ ¦ Si se ejecutó correctamente: ¦ ¦ Flag de acarreo (Cf) = 0 ¦ ¦ ¦ ¦ Si NO se ejecutó correctamente: ¦ ¦ Flag de acarreo (Cf) = 1 ¦ ¦ AX = Código de error. ¦ ¦ ¦ + EFECTO: ¦ ¦ Mediante esta función se cierra un fichero que estuviera abierto. ¦ ¦ Se utiliza el Handle para indicar el fichero a cerrar. ¦ ¦ Tras cerrar el fichero, dicho Handle se libera para nuevos ficheros.¦ ¦ Se vuelvan al disco todos los buffers internos asociados al fichero.¦ ¦ ¦ + VERSION DE MS-DOS: 2.0 ó superior. ¦ ¦ ¦ + NOTAS: ¦ ¦ Si por error se llamara a esta función con el valor 0, se ¦ ¦ cerraría el dispositivo de entrada estándar (teclado), que ¦ ¦ tiene asociado ese handle 0. En cuyo caso no se aceptarían ¦ ¦ datos del teclado. ¦ ¦ Si el valor del handle fuera 1, se cerraría la pantalla, y ¦ ¦ no se enviarían caracteres a la pantalla. ¦ ¦ Hay en total 5 handles reservados para referenciar a ¦ ¦ diferentes dispositivos: ¦ ¦ ¦ ¦ Handle 0 ---> Dispositivo estándar de entrada. (CON). ¦ ¦ Handle 1 ---> Dispositivo estándar de salida. (CON). ¦ ¦ Handle 2 ---> Dispositivo estándar de error. (CON). ¦ ¦ Handle 3 ---> Dispositivo auxiliar estándar. (AUX). ¦ ¦ Handle 4 ---> Dispositivo estándar de listado. (PRN). ¦ ¦ ¦ ¦ Normalmente, el handle 0 referencia al teclado. ¦ ¦ El handle 1, a la pantalla. ¦ ¦ El handle 2, a la pantalla. Se utiliza a la hora de mostrar ¦ ¦ errores. Por eso lo de dispositivo de error. ¦ ¦ El handle 4, a la impresora. ¦ ¦ El handle 3 referencia a un dispositivo auxiliar. ¦ ¦ ¦ ¦ ¦ +---------------------------------------------------------------------+ +---------------------------------------------------------------------+ ¦ INT 21H Función 3FH ¦ ¦ +-------------------------------------------¦ ¦ ¦ Lectura de Fichero o dispositivo. ¦ ¦ +-------------------------------------------+ ¦ ¦ ¦ + LLAMADA: ¦ ¦ AH = 3FH ¦ ¦ BX = Handle. ¦ ¦ CX = Número de bytes a leer. ¦ ¦ DSX = Segmentoesplazamiento del buffer donde se ¦ ¦ depositarán los carateres leidos. ¦ ¦ ¦ + DEVUELVE: ¦ ¦ Si se ejecutó correctamente: ¦ ¦ Flag de acarreo (Cf) = 0 ¦ ¦ AX = Bytes transferidos. ¦ ¦ ¦ ¦ Si NO se ejecutó correctamente: ¦ ¦ Flag de acarreo (Cf) = 1 ¦ ¦ AX = Código de error. ¦ ¦ ¦ + EFECTO: ¦ ¦ Dado un handle válido, se realiza una transferencia desde el ¦ ¦ fichero referenciado por ese handle hacia el buffer de memoria ¦ ¦ especificado mediante DSX. Se transferirán tantos caracteres ¦ ¦ como se especifique en CX. Acto seguido, se actualiza el puntero ¦ ¦ de fichero hasta el carácter que sigue al bloque leido. ¦ ¦ ¦ + VERSION DE MS-DOS: 2.0 ó superior. ¦ ¦ ¦ + NOTAS: ¦ ¦ Si se devuelve el flag Cf con valor (0), pero AX=0, esto ¦ ¦ quiere decir que el puntero de fichero estaba apuntando ¦ ¦ al final de fichero, y por eso no se ha podido leer ningún ¦ ¦ carácter. ¦ ¦ Si se devuelve el flag Cf con valor (0), pero el contenido ¦ ¦ del registro AX es menor que la cantidad de bytes a leer, ¦ ¦ (indicado mediante CX antes de llamar a la función), esto ¦ ¦ significa que se produjo algún error, o que no se pudo leer ¦ ¦ todos los caracteres solicitados, porque se llegó al final ¦ ¦ de fichero. ¦ ¦ ¦ ¦ Mediante esta función es posible leer caracteres del teclado,¦ ¦ usando el handle 0. ¦ ¦ ¦ +---------------------------------------------------------------------+ +---------------------------------------------------------------------+ ¦ INT 21H Función 40H ¦ ¦ +-------------------------------------------¦ ¦ ¦ Escritura en Fichero o dispositivo. ¦ ¦ +-------------------------------------------+ ¦ ¦ ¦ + LLAMADA: ¦ ¦ AH = 40H ¦ ¦ BX = Handle. ¦ ¦ CX = Número de bytes a escribir. ¦ ¦ DSX = Segmentoesplazamiento del buffer desde donde se ¦ ¦ van a tomar los caracteres a escribir. ¦ ¦ ¦ + DEVUELVE: ¦ ¦ Si se ejecutó correctamente: ¦ ¦ Flag de acarreo (Cf) = 0 ¦ ¦ AX = Bytes transferidos. ¦ ¦ ¦ ¦ Si NO se ejecutó correctamente: ¦ ¦ Flag de acarreo (Cf) = 1 ¦ ¦ AX = Código de error. ¦ ¦ ¦ + EFECTO: ¦ ¦ Dado un handle válido, se realiza una transferencia desde el ¦ ¦ buffer de memoria indicado mediante DSX hacia el fichero o ¦ ¦ dispositivo referenciado por el Handle. ¦ ¦ Se transferirán tantos caracteres como se especifique en CX. ¦ ¦ Acto seguido, se actualiza el puntero de fichero una posición por ¦ ¦ delante del bloque escrito, para que futuras escrituras no ¦ ¦ 'machaquen' los datos que ya hubiera. ¦ ¦ ¦ + VERSION DE MS-DOS: 2.0 ó superior. ¦ ¦ ¦ + NOTAS: ¦ ¦ Si se devuelve el flag Cf con valor (0), pero AX=0, esto ¦ ¦ quiere decir que el dispositivo en el que se encuentra ¦ ¦ el fichero ya estaba lleno antes de la llamada a esta ¦ ¦ función. ¦ ¦ Si se devuelve el flag Cf con valor (0), pero el contenido ¦ ¦ del registro AX es menor que la cantidad de bytes a escribir,¦ ¦ (indicado mediante CX antes de llamar a la función), esto ¦ ¦ significa que se produjo algún error, o que no se pudo ¦ ¦ escribir todos los caracteres solicitados, porque se ha dado ¦ ¦ una condición de disco lleno. ¦ ¦ ¦ ¦ Mediante esta función es posible escribir caracteres en la ¦ ¦ pantalla, usando el handle 1. ¦ ¦ ¦ +---------------------------------------------------------------------+ +---------------------------------------------------------------------+ ¦ INT 21H Función 41H ¦ ¦ +-------------------------------------------¦ ¦ ¦ Borrar Fichero. ¦ ¦ +-------------------------------------------+ ¦ ¦ ¦ + LLAMADA: ¦ ¦ AH = 41H ¦ ¦ DSX = Segmentoesplazamiento de la cadena ASCIIZ ¦ ¦ con el nombre del fichero a borrar. ¦ ¦ ¦ + DEVUELVE: ¦ ¦ Si se ejecutó correctamente: ¦ ¦ Flag de acarreo (Cf) = 0 ¦ ¦ ¦ ¦ Si NO se ejecutó correctamente: ¦ ¦ Flag de acarreo (Cf) = 1 ¦ ¦ AX = Código de error. ¦ ¦ ¦ + EFECTO: ¦ ¦ Se borra el fichero indicado mediante la cadena ASCIIZ. ¦ ¦ ¦ + VERSION DE MS-DOS: 2.0 ó superior. ¦ ¦ ¦ + NOTAS: ¦ ¦ La función se abortará si: ¦ ¦ - La vía de acceso contenida en la cadena ASCIIZ es errónea. ¦ ¦ - Si el fichero a borrar es de sólo lectura. ¦ ¦ ¦ +---------------------------------------------------------------------+ +---------------------------------------------------------------------+ ¦ INT 21H Función 42H ¦ ¦ +-------------------------------------------¦ ¦ ¦ Establecer puntero de fichero. ¦ ¦ +-------------------------------------------+ ¦ ¦ ¦ + LLAMADA: ¦ ¦ AH = 42H ¦ ¦ AL = Código de desplazamiento: ¦ ¦ 00h Desplazamiento desde el inicio del fichero. ¦ ¦ 01h Desplazamiento desde la posición actual del ¦ ¦ puntero. ¦ ¦ 02h Desplazamiento desde el final del fichero. ¦ ¦ ¦ ¦ BX = Handle del fichero. ¦ ¦ CX = Mitad más significativa del desplazamiento. ¦ ¦ DX = Mitad menos significativa del desplazamiento. ¦ ¦ ¦ + DEVUELVE: ¦ ¦ Si se ejecutó correctamente: ¦ ¦ Flag de acarreo (Cf) = 0 ¦ ¦ DX = Mitad más significativa del puntero actualizado. ¦ ¦ AX = Mitad menos significativa del puntero actualizado.¦ ¦ ¦ ¦ Si NO se ejecutó correctamente: ¦ ¦ Flag de acarreo (Cf) = 1 ¦ ¦ AX = Código de error. ¦ ¦ ¦ + EFECTO: ¦ ¦ Cambia el valor del puntero de fichero, permitiendo así un acceso ¦ ¦ aleatorio al fichero. Podremos, mediante esta función, escribir y ¦ ¦ leer caracteres en cualquier posición del fichero, sin pasar por ¦ ¦ las anteriores. ¦ ¦ ¦ + VERSION DE MS-DOS: 2.0 ó superior. ¦ ¦ ¦ + NOTAS: ¦ ¦ Independientemente del tipo de llamada, el valor del puntero ¦
hoy les voy a enseñar como hacer rocas de chocolates Ingrediente principal: Cereales Ingredientes Copos de maíz 150 g Copos de arroz 150 g Cáscaras de naranja confitadas 100 g Chocolate semiamargo 300 g Procedimiento Mezclar en un recipiente los cereales y las cáscaras de naranja confitadas, agregar el chocolate fundido, y sobre una placa con papel manteca o film, colocar montoncitos de esta mezcla que rápidamente solidificará. Servir acompañando un rico café. comenten

hola hoy les voy a enseñar a hacer una rica tarta de limon Ingredientes: (6 personas) * 1 molde de unos 22 cm de diámetro * Masa quebrada: o 200 g de harina o 80 g de mantequilla o 1 huevo o 1 cucharada sopera de aceite fino o 1 pellizco de sal o 1 cucharada sopera de azúcar y un poco de agua fría * Relleno: o 1 bote de leche condensada o 3 yemas de huevo o La ralladura de un limón o El zumo de 2 o 3 limones * Merengue: o 3 claras de huevo o 2 cucharadas soperas de azúcar glass o 1 cucharadita de harina fina o un pellizco de sal Pasos: MASA QUEBRADA: Paso 1: Se pone la harina e una ensaladera, se espolvorea con el pellizco de sal y el azúcar y se añade la mantequilla (blanda) en trocitos como avellanas y la yema. Paso 2: Con la punta de los dedos se tritura esto lo menos posible, formando una especie de serrín grueso. Paso 3: Se va echando entonces poco a poco (en tres veces, por ejemplo) el agua. Se espolvorea la mesa o mármol y se echa la masa para amasarla un poco, y se forma una bola grande. Ésta se pone en sitio fresca tapada con un tazón, o envuelta en papel de plata, y se deja reposar por lo menos 3 horas. Se puede preparar con más anticipación si se quiere. Paso 4: Al ir a hacerla, se espolvorea harina en la mesa y se extiende con un rollo pastelero. Se traslada con cuidado al molde previamente untando con un poco de mantequilla. Se recortan los bordes que sobren y se pincha el fondo en varios sitios con un tenedor para que al cocer nose formen pompas. Paso 5: Se puede poner al horno mediano unos 10 o 15 minutos y rellenarla después a medio cocer. Se pueden poner en el fondo un puñado de garbanzos o judíoas(sin remojar) para que no se deforme la masa al cocer sin relleno. Al poner el relleno se quitan. Paso 6: Se puede batir con un tenedor una clara de huevo(sólo como si fuese para tortilla) y con una frocha plana untar el fondo y los bordes para cuando se rellena la tarta con que pueda soltar algo de jugo. RELLENO: Paso 1: Se bate ligeramente en un tazón como 1/2 clara de huevo, pero sólo hasta que esté espumosa. Con una brocha se unta el fondo de la tarta(quitados los garbanzos o judías) Paso 2: Se vuelve a meter en el horno 5 minutos para que se seque la clara. Paso 3: En una ensaladera se baten las 3 yemas con la ralladura de limón y se vierte poco a poco la leche condensada y luego el zumo de los limones. Se vierte esta crema en la tarta. Paso 4: Se hace el merengue empieza a dorarse se saca, se deja enfriar y se sirve la tarta. comenten
