
chopperlove
10 de Febrero del 2010
|
hola chavos del foro,sólo necesito una rutina en este archivo de ensamblador para q'al momento de q'haga el archivo "texto_copia.txt" que,lógicamente es una copia del archivo "texto.txt",el contenido de la copia sea en mayusculas
TITLE Copia un Archivo de Texto
INCLUDE Irvine16.inc
.data
TamBuf = 256
archent BYTE "texto.txt",0
archsal BYTE "texto_copia.txt",0
manejadorEnt WORD ?
manejadorSal WORD ?
buffer BYTE TamBuf DUP(?)
bytesLeidos WORD ?
pString BYTE ?
.code
main PROC
mov ax,@data
mov ds,ax
;Abre el Archivo
mov ax,716Ch ;Abrir o crear extendido
mov bx,0 ;Modo = sólo lectura
mov cx,0 ;Atributo Normal
mov dx,1 ;Abrir
mov si,OFFSET archent
int 21h ;interrupcion MS-DOs
jc termina ;Termina si hay error
mov manejadorEnt,ax
;Lee el Archivo
mov ah,3Fh ;Lee Archivo
mov bx,manejadorEnt ;Manejador del archivo
mov cx,TamBuf ;Número max de bytes
mov dx,OFFSET buffer ;Apuntador del buffer
int 21h ;interrupcion MS-DOS
jc termina ;Termina si hay un error
mov bytesLeidos,ax
;Muestra lo que hay en el buffer
mov ah,40h ;Escribe en archivo
mov bx,1 ;Manejador de salida de consola
mov cx,bytesLeidos ;Número de bytes
mov dx,OFFSET buffer ;Apuntador del buffer
int 21h ;interrupcion MS-DOs
jc termina ;Termina si hay un error
;Cierra el Archivo
mov ah,3Eh ;Cerrar Archivo
mov bx,manejadorEnt ;Manejador de archivo de entrada
int 21h ;interrupcion MS-DOs
jc termina ;Termina si hay un error
;Crea la Copia
mov ax,716Ch ;Crear o abrir
mov bx,1 ;Modo = Sólo lectura
mov cx,0 ;Atributos Normales
mov dx,12h ;Acción Crear
mov si,OFFSET archsal
int 21h ;interrupcion MS-DOs
jc termina ;Termina si hay error
mov manejadorSal,ax ;Guarda el manejador
;Escribe bufer en el archivo nuevo
mov ah,40h ;Escribe archivo
mov bx,manejadorSal ;Manejador Archivo de Salida
mov cx,bytesLeidos ;Número de Bytes
mov dx,OFFSET buffer ;Apuntador del Buffer
int 21h ;interrupcion MS-DOs
jc termina ;Termina si hay error
;Cierra el Archivo
mov ah,3Eh ;Funcion : Cerrar Archivo
mov bx,manejadorSal ;manejador de archivo salida
int 21h ;interrupcion MS-DOs
termina:
call Crlf
exit
main ENDP
END main
|