lunes, 22 de noviembre de 2010
lunes, 15 de noviembre de 2010
Ejemplo de manejo de archivos con ensamblador 8086
;******************************************************************************
;Ejemplo de manejo de archivos
; el programa combina los contenidos de dos archivos
; genera un tercer archivo con los caracteres alternados de los archivos leidos
;******************************************************************************
;
; elaborado por Fernando Monrroy Dipp
;
;******************************************************************************
.model small
.stack 64
.data
arch1 db 'uno.txt',0 ;un archivo, debe estar en la misma carpeta del ejecutable
arch2 db 'dos.txt',0 ;otro archivo, debe estar en la misma carpeta del ejecutable
arch3 db 'tres.txt',0 ;se crea al ejecutar el programa
buf1 db 20 dup(?) ;buffer de lectura del archivo 1
buf2 db 20 dup(?) ;buffer de lectura del archivo 2
buf3 db 40 dup(?) ;buffer de escritura del archivo 3
erm db 10,13,'error!!!!',10,13,'$'
exm db 10,13,'exito!!!!',10,13,'$'
fiha1 dw ?
fiha2 dw ?
.code
uno: mov ax,@data
mov ds,ax ; lo de siempre
lea dx,arch1
mov ax,3d00h
int 21h ;abre archivo 1
jc error
mov fiha1,ax
mov bx,fiha1
mov ah,3fh
mov cx,20
lea dx,buf1
int 21h ;lee archivo 1 en buf1
jc error
mov ah,3eh
int 21h ;cierra arch1
lea dx,arch2
mov ax,3d00h
int 21h ;abre archivo 2
jc error
mov fiha1,ax
mov bx,ax
mov ah,3fh
mov cx,20
lea dx,buf2
int 21h ;lee archivo 2 en buf2
jc error
mov ah,3eh
int 21h ;cierra archivo 2
mov ah,3ch
lea dx,arch3
mov al,0
mov cx,0
int 21h ;crea archivo 3
jc error
mov fiha2,ax
xor bx,bx ;base para apuntar los tres buffers
mov cx,20 ;caracteres a mover
xor si,si ;indice para desplazar buffer 3
lazo: mov al,buf1[bx] ;lee ch de buffer 1
mov buf3[bx+si],al ;mueve a buffer 3
inc si ;desplaza indice
mov al,buf2[bx] ;lee ch de buffer 2
mov buf3[bx+si],al ; mueve a buffer 3
inc bx ;actualiza base
loop lazo ;repite lazo hasta que cx sea 0
mov bx,fiha2 ;
mov ah,40h
lea dx,buf3
mov cx,40
int 21h ;escribe 40 ch de buffer 3 a archivo 3
jc error
mov ah,3eh
int 21h ;cierra archivo
jc error
lea dx,exm ;
mov ah,9
int 21h ;muestra mensaje de exito
jmp fin
error: lea dx,erm
mov ah,9
int 21h ;muestra mensaje de error
fin: mov ah,4ch
int 21h ;retorna al ss oo
end uno
;Ejemplo de manejo de archivos
; el programa combina los contenidos de dos archivos
; genera un tercer archivo con los caracteres alternados de los archivos leidos
;******************************************************************************
;
; elaborado por Fernando Monrroy Dipp
;
;******************************************************************************
.model small
.stack 64
.data
arch1 db 'uno.txt',0 ;un archivo, debe estar en la misma carpeta del ejecutable
arch2 db 'dos.txt',0 ;otro archivo, debe estar en la misma carpeta del ejecutable
arch3 db 'tres.txt',0 ;se crea al ejecutar el programa
buf1 db 20 dup(?) ;buffer de lectura del archivo 1
buf2 db 20 dup(?) ;buffer de lectura del archivo 2
buf3 db 40 dup(?) ;buffer de escritura del archivo 3
erm db 10,13,'error!!!!',10,13,'$'
exm db 10,13,'exito!!!!',10,13,'$'
fiha1 dw ?
fiha2 dw ?
.code
uno: mov ax,@data
mov ds,ax ; lo de siempre
lea dx,arch1
mov ax,3d00h
int 21h ;abre archivo 1
jc error
mov fiha1,ax
mov bx,fiha1
mov ah,3fh
mov cx,20
lea dx,buf1
int 21h ;lee archivo 1 en buf1
jc error
mov ah,3eh
int 21h ;cierra arch1
lea dx,arch2
mov ax,3d00h
int 21h ;abre archivo 2
jc error
mov fiha1,ax
mov bx,ax
mov ah,3fh
mov cx,20
lea dx,buf2
int 21h ;lee archivo 2 en buf2
jc error
mov ah,3eh
int 21h ;cierra archivo 2
mov ah,3ch
lea dx,arch3
mov al,0
mov cx,0
int 21h ;crea archivo 3
jc error
mov fiha2,ax
xor bx,bx ;base para apuntar los tres buffers
mov cx,20 ;caracteres a mover
xor si,si ;indice para desplazar buffer 3
lazo: mov al,buf1[bx] ;lee ch de buffer 1
mov buf3[bx+si],al ;mueve a buffer 3
inc si ;desplaza indice
mov al,buf2[bx] ;lee ch de buffer 2
mov buf3[bx+si],al ; mueve a buffer 3
inc bx ;actualiza base
loop lazo ;repite lazo hasta que cx sea 0
mov bx,fiha2 ;
mov ah,40h
lea dx,buf3
mov cx,40
int 21h ;escribe 40 ch de buffer 3 a archivo 3
jc error
mov ah,3eh
int 21h ;cierra archivo
jc error
lea dx,exm ;
mov ah,9
int 21h ;muestra mensaje de exito
jmp fin
error: lea dx,erm
mov ah,9
int 21h ;muestra mensaje de error
fin: mov ah,4ch
int 21h ;retorna al ss oo
end uno
viernes, 8 de octubre de 2010
martes, 5 de octubre de 2010
lunes, 20 de septiembre de 2010
miércoles, 15 de septiembre de 2010
sábado, 11 de septiembre de 2010
martes, 7 de septiembre de 2010
sábado, 4 de septiembre de 2010
sábado, 28 de agosto de 2010
Ejemplo de corrientes de mallas
Seguimos la trayectoria de la corriente de cada malla:
malla 1:
r1i1+r3(i1-i2)+r4(i1-i3)-e1=0
malla2:
r2i2+e2+r5(i2-i3)+r3(i2-i3)=0
malla3:
r6i3+r4(i3-i1)+r5(i3-i2)=0
malla 1:
r1i1+r3(i1-i2)+r4(i1-i3)-e1=0
malla2:
r2i2+e2+r5(i2-i3)+r3(i2-i3)=0
malla3:
r6i3+r4(i3-i1)+r5(i3-i2)=0
Bienvenido a mi blog
Hola.
En este blog encontraras elementos de apoyo a las cátedras que dicto en la UAGRM.
Espero lo uses y sea para ti ameno y sobre todo facilite la gestión de aprendisaje.
En este blog encontraras elementos de apoyo a las cátedras que dicto en la UAGRM.
Espero lo uses y sea para ti ameno y sobre todo facilite la gestión de aprendisaje.
Suscribirse a:
Entradas (Atom)