Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Centro Universitario de Ciencias Exactas e Ingenierías Ingeniería en computación Traductores de lenguajes 1 Sección D05 José Luis Serna Serna Código: 218292327 Actividad 10, 2020A, Abrir, escribir en y cerrar archivo usando ensamblador en emu8086 27/Mar/2020 Objetivo. implementar, un programa en ensamblador que abra un archivo y escribir tu nombre en el archivo y cierre el archivo Código fuente. org 100h jmp start: print macro cadena ;macro para imprimir menu mov dx,cadena mov ah,09h int 21h endm msj: db '* Menu *',0ah,0dh,24h ;mensajes del menu msj2: db '1.- Crear Archivo',0ah,0dh,24h msj3: db '2.- Abrir y escribir en Archivo',0ah,0dh,24h msj4: db '3.- Salir',0ah,0dh,24h filename DB 'actividad10.txt',0 ;nombre del archivo towrite DB 'Jose Luis Serna' ;mensaje que se escribira en el archivo cadena DB ' ''$' ;variable de cadena para usare wen la macro start: menu: print msj ;uso la macro para imprimir el menu print msj2 print msj3 print msj4 mov ah,0dh int 21h mov ah,01h ;para permitir ingresar la opción del menu int 21h cmp al,31h ;comparacion je create ;salto si igual, salta a create cmp al,32h je open ;salto si igual, salta a open cmp al,33h je end ;salto si igual, salta a end end: ;salir del programa mov ah,0 int 16h ret create: mov ah,3ch ;para crear archivo mov cx,0 mov dx,offset filename ;nombre del archivo para crearlo int 21h ;interrupcion 21 jc end ;por si hubo un error mov bx,ax mov ah,3eh ;cierra el archivo int 21h jmp menu ;salta a menu open: mov ah,3dh ;para abrir el archivo mov al,1h ;abrirlo en modo escritura mov dx,offset filename ;nombre del archivo para abrirlo int 21h jc end ;termina por si hubo un error mov bx,ax mov cx,15 mov dx,offset towrite ;mensaje a escribir mov ah,40h ;para escribir en el archivo int 21h cmp cx,ax ;comparar jne end ;salto si no igual mov ah,3eh ;cierra el archivo int 21h jmp menu ;salta a menu Capturas de pantalla de la ejecución. en mi programa hice un menú, la primera opción es para que se cree el archivo, el archivo se crea en la carpeta de mybuild de la carpeta de emu8086, una vez creado el archivo se cierra y en el programa vuelvo al menú. Lo abro, aun no he escrito nada, lo cierro. Ahora elijo la segunda opción que es abrir, en esa misma opción lo abrí en modo de escritura y escribo mi nombre en el archivo, después de escribir cierra el archivo y regresa al menú. Si abro el archivo ya se escribió mi nombre, cierro el archivo. La última opción es simplemente para salir del programa, brinca a la interrupción 16h. Conclusión. Esta actividad fue muy interesante porque aprendí un nuevo uso para la interrupción 21h, usarla para escribir en archivos, en combinación con otras instrucciones claro, como lo es la 3ch(crear archivo), 3dh(para abrir archivo), 40h(para escribir en un archivo y 3eh(para cerrar archivo), fue además otra oportunidad para usar cosas que he aprendido en el semestre, por ejemplo el uso de macros y de saltos condicionales, que son de mucha utilidad, un ejemplo muy útil es cuando hacemos un salto que necesitamos a cierta parte del programa después de hacer una comparación y que se cumple la condición. Referencias. [1] Ensamblador básico (2013). Manejo de archivos. [internet]. Disponible en http://miensamblador.blogspot.com/ http://miensamblador.blogspot.com/
Compartir