Lenguaje de maquina

18
Lenguaje de maquina Unidad III Programación en Lenguaje Ensamblador. Programación: Manejo de ficheros. Ejemplos. Tema:

description

Unidad III. Programación en Lenguaje Ensamblador. Lenguaje de maquina. Tema:. Programación: Manejo de ficheros. Ejemplos. Objetivo General. Adquirir una sólida comprensión del funcionamiento interno de los microprocesadores. - PowerPoint PPT Presentation

Transcript of Lenguaje de maquina

Page 1: Lenguaje de maquina

Lenguaje de maquina

Unidad III

Programación en Lenguaje Ensamblador.

Programación: Manejo de ficheros. Ejemplos.

Tema:

Page 2: Lenguaje de maquina

Objetivo GeneralAdquirir una sólida comprensión del

funcionamiento interno de los microprocesadores.

Conocer y emplear eficientemente el entorno de programación del Lenguaje Ensamblador.

Elaborar programas a nivel avanzado que permiten manejar eficientemente los recursos del microprocesador

Page 3: Lenguaje de maquina

Objetivo Terminal

Implementar correctamente rutinas para el manejo de dispositivos de almacenamiento.

Page 4: Lenguaje de maquina

Objetivo Instruccional

Desarrollar aplicaciones para la administración de datos almacenados

en archivos

Page 5: Lenguaje de maquina

SEMANA 13_1

Page 6: Lenguaje de maquina

MANEJO DE ARCHIVOS

• UN ARCHIVO ES UNA COLECCIÓN DE DATOS (BLOQUES DE OCTETOS) QUE CON UN NOMBRE SE ESCRIBEN O ALMACENAN EN ALGUN DISPOSITIVO MAGNETICO. ESTOS DATOS PUEDEN SER DESPUES LEIDOS O RECUPERADOS DEL ARCHIVO.

• EL SISTEMA OPERATIVO DOS PROVEE VARIAS FORMAS PARA TRABAJAR CON ARCHIVOS USANDO EL LENGUAJE ENSAMBLADOR. UNA DE ELLAS CONSISTE EN ASIGNARLE A UN ARCHIVO UN NUMERO DE 16 BITS AL CUAL DENOMINAREMOS DESCRIPTOR DEL ARCHIVO (FILE HANDLE).

• POR MEDIO DEL DESCRIPTOR SE REALIZAN LAS OPERACIONES BASICAS DE LECTURA, ESCRITURA Y MOVIMIENTO DEL ARCHIVO.

Lenguaje de maquina

Page 7: Lenguaje de maquina

MANEJO DE ARCHIVOS: FUNCIONES

• LAS FUNCIONES DEL DOS PARA MANEJAR ARCHIVOS SON:

CREACION : 3CHAPERTURA : 3DHCIERRE : 3EHLECTURA : 3FHESCRITURA : 40H BORRAR ARCHIVO : 41HMOVIMIENTO DEL PUNTERO DE ARCHIVO : 42H

TODAS SE EJECUTAN CON : INT 21H

ESTAS INSTRUCCIONES UTILIZAN EL INDICADOR DE ACARREO CF PARA DETERMINAR SI SE HAN EJECUTADO CORRECTAMENTE (SIN ACARREO)

Lenguaje de maquina

Page 8: Lenguaje de maquina

MANEJO DE ARCHIVOS: FUNCIONES

• PARA DESACTIVAR O BORRAR EL ACARREO SE PUEDE UTILIZAR, POR EJEMPLO:

CLC ; (CLEAR CARRY) BORRA ACARREOSUB AL,AL ; HACE AL=0 Y BORRA ACARREO

SE PUEDEN EMPLEAR LAS INSTRUCCIONES DE SALTO CORTO SEGÚN EL ACARREO:

JC DESTINO ; (JUMP IF CARRY) SALTAR SI HAY ACARREOJNC DESTINO ; (JUMP IF NOT CARRY) SALTAR SI NO HAY

; ACARREO

NOTA: EL VALOR DEL DESCRIPTOR DE UN ARCHIVO QUE SE CREA O ABRE ES ASIGNADO (ELEGIDO) POR EL SISTEMA OPERATIVO DOS.

Lenguaje de maquina

Page 9: Lenguaje de maquina

CREACION DE ARCHIVOS: 3CH

• SE DEBE TENER:

-EN AH EL CODIGO 3CH-EN DS:DX LA DIRECCION DEL COMIENZO DEL NOMBRE DEL ARCHIVO A CREARSE (ESTE NOMBRE DEBE TERMINAR CON 0)-EN CX EL VALOR 0 (MODO NORMAL DE CREACION)

Y SE EJECUTA CON INT 21H.

RESULTADO:- SI HAY ACARREO NO SE CREA EL ARCHIVO Y AX RESULTA CON EL CODIGO DE ERROR (EJM. DISCO LLENO)- SI NO HAY ACARREO, SE CREA EL ARCHIVO Y AX RESULTA CON EL DESCRIPTOR ASIGNADO

Lenguaje de maquina

Page 10: Lenguaje de maquina

APERTURA DE ARCHIVOS: 3DH

• SE DEBE TENER:

-EN AH EL CODIGO 3DH-EN DS:DX LA DIRECCION DE INICIO DEL NOMBRE DEL ARCHIVO A ABRIRSE (EL NOMBRE DEBE TERMINAR CON 0)-EN AL EL CODIGO DE ACCESO: 0 = SOLO LECTURA

1 = SOLO ESCRITURA

2 = LECTURA/ESCRITURAY SE EJECUTA CON INT 21H.

RESULTADO:- SI HAY ACARREO NO SE PUEDE ABRIR Y AX CONTIENE EL CODIGO DE ERROR- SI NO HAY ACARREO, SE ABRE EL ARCHIVO Y AX RESULTA CON EL DESCRIPTOR ASIGNADO

Lenguaje de maquina

Page 11: Lenguaje de maquina

CIERRE DE ARCHIVOS: 3EH

• SE DEBE TENER:

-EN AH EL CODIGO 3EH-EN BX EL DESCRIPTOR DEL ARCHIVO A CERRAR

Y SE EJECUTA CON INT 21H.

RESULTADO:- SI HAY ACARREO NO SE PUEDE CERRAR EL ARCHIVO Y AX CONTIENE EL CODIGO DE ERROR- SI NO HAY ACARREO, SE CIERRA EL ARCHIVO

Lenguaje de maquina

Page 12: Lenguaje de maquina

LECTURA DE ARCHIVOS: 3FH

• SE DEBE TENER:

-EN AH EL CODIGO 3FH-EN BX EL DESCRIPTOR DEL ARCHIVO A LEER-EN CX EL NUMERO DE OCTETOS A SER LEIDOS-EN DS:DX LA DIRECCION DEL AREA DE RECEPCION DE DATOS (BUFFER)

Y SE EJECUTA CON INT 21H.

RESULTADO:- SI HAY ACARREO, ERROR DE LECTURA CON CODIGO DE ERROR EN AX- SI NO HAY ACARREO, AX CONTIENE EL NUMERO DE OCTETOS LEIDOS, SIENDO ESTE CERO SI SE ESTA EN EL FINAL DEL ARCHIVO

Lenguaje de maquina

Page 13: Lenguaje de maquina

ESCRITURA DE ARCHIVOS: 40H

• SE DEBE TENER:

-EN AH EL CODIGO 40H-EN BX EL DESCRIPTOR DEL ARCHIVO A LEER-EN CX EL NUMERO DE OCTETOS A SER ESCRITOS-EN DS:DX LA DIRECCION DEL AREA DE DATOS A COPIAR (BUFFER)

Y SE EJECUTA CON INT 21H.

RESULTADO:- SI HAY ACARREO, ERROR DE ESCRITURA CON CODIGO DE ERROR EN AX- SI NO HAY ACARREO, LA OPERACIÓN DE ESCRITURA HA SIDO CORRECTA

Lenguaje de maquina

Page 14: Lenguaje de maquina

BORRAR ARCHIVOS: 41H

• SE DEBE TENER:

-EN AH EL CODIGO 41H-EN DS:DX LA DIRECCION DEL NOMBRE DE ARCHIVO (TERMINA CON 0)

Y SE EJECUTA CON INT 21H.

RESULTADO:- SI HAY ACARREO, ERROR DE BORRADO CON CODIGO DE ERROR EN AX- SI NO HAY ACARREO, LA OPERACIÓN DE BORRADO HA SIDO CORRECTA

Lenguaje de maquina

Page 15: Lenguaje de maquina

MOVIMIENTO DEL PUNTERO DE UN ARCHIVO: 42H

• DENTRO DE UN ARCHIVO ES POSIBLE DESPLAZARSE A UNA DIRECCION ESPECIFICA Y LUEGO EJECUTAR OPERACIONES DE LECTURA O DE ESCRITURA A PARTIR DE LA DIRECCION SIGUIENTE.

• UTILIZANDO ESTA FUNCION, EL ARCHIVO PUEDE SER TRATADO COMO UNO DE ACCESO ALEATORIO O DIRECTO. POR EJEMPLO, SI SE TRABAJA CON U ARCHIVO FORMADO POR REGISTROS DE 150 OCTETOS DE LONGITUD, PARA ACCEDER AL CUARTO REGISTRO SERA NECESARIO LOCALIZAR EL COMIENZO DEL CUARTO BLOQUE DE 150 OCTETOS, ESTE ES DADO POR EL NUMERO 3*150, PUES LOS OCTETOS DEL ARCHIVO SE NUMERAN EMPEZANDO POR 0.

Lenguaje de maquina

Page 16: Lenguaje de maquina

MOVIMIENTO DEL PUNTERO DE UN ARCHIVO: 42H

• NOTA:

• LAS CLASES DE OPERACIONES A REALIZAR EN UN ARCHIVO DEPENDEN DEL MODO DE ACCESO QUE SE HAYA ESCOGIDO EN EL MOMENTO DE CREARLO O DE ABRIRLO.

• IGUAL QUE EN EL DIRECCIONAMIENTO DE MEMORIA, LAS DIRECCIONES EN UN ARCHIVO EMPLEAN UN PAR DE PALABRAS DE 16 BITS I : J.

Lenguaje de maquina

Page 17: Lenguaje de maquina

MOVIMIENTO DEL PUNTERO: 42H

• SE DEBE TENER: -EN AH EL CODIGO 42H-EN BX EL DESCRIPTOR DEL ARCHIVO A LEER-EN EL PAR CX:DX EL DESPLAZAMIENTO DEL APUNTADOR, ESTO ES, EL NUMERO DE DIRECCIONES QUE HA DE MOVERSE CON RESPECTO A UN PUNTO DE REFERENCIA.-EN AL EL CODIGO DEL PUNTO DE REFERENCIA:

0 = PARA EL COMIENZO DEL ARCHIVO 1 = PARA LA POSICION ACTUAL 2 = PARA EL FINAL DEL ARCHIVO

Y SE EJECUTA CON INT 21H.

RESULTADO:- SI HAY ACARREO, OPERACIÓN INCORRECTA- SI NO HAY ACARREO, EL PAR DX:AX CONTIENE LA DIRECCION ACTUAL DEL APUNTADOR QUE DEBE SER IGUAL A:

= DIRECCION DEL PUNTERO DE REFERENCIA + VALOR DE CX:DX

Lenguaje de maquina

Page 18: Lenguaje de maquina

EJEMPLOS:

• PROGRAMA : CREAR• PROGRAMA : MAYUSCUL• PROGRAMA : INCLUIR

EJERCICIOS:

• ELABORAR UN PROGRAMA PARA DAR MANTENIMIENTO A UN ARCHIVO QUE ALMACENA NOMBRES DE LIBROS.

Lenguaje de maquina