Logo Studenta

Actividad_10_SernaSerna - Jose SernaS

¡Estudia con miles de materiales!

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/

Otros materiales

Materiales relacionados