• No se han encontrado resultados

Ejemplos de aplicación

Como herramientas de programación en ensamblador tenemos el Debugger, MASM y el Simuproc. Es recomendable comenzar con Debugger digitando y probando los códigos de programa que aquí se exponen. Luego es recomendable tomar la documentación suministrada sobre las especificaciones del programa Simuproc hacer una lectura analítica y comenzar por introducir instrucciones simples y notar su funcionamiento, más adelante podrá realizar pequeños programas adecuándolos desde Debugger a Simuproc y hacer la ejecución del mismo, hasta llegar al punto de producir sus propios programas antes de pasar a trabajar con MASM y MASM32.

Es importante que los estudiantes cada vez que generen un programa en Debugger o MASM, sean conscientes que pueden al digitar o probar algún programa quedar en un ciclo infinito o bloquear el sistema, por lo que se aconseja no tener abierto documentos o programas con información relevante susceptible de ser perdida en el momento de realizar los ejercicios, es conveniente destinar un equipo y espacio de tiempo para realizar los programas que se exponen a continuación, cuanto sucedan eventos de iteración infinita o bloqueo reiniciar el equipo.

Si se utiliza SimuProc dado que es un emulador aunque también puede generar algún “bug” la solución es menos drástica, en este caso cerrando el programa y volviéndolo a ejecutar.

Controlar condiciones, iteraciones y bifurcaciones

Las estructuras básicas de programación utilizan las iteraciones, condiciones y bifurcaciones proporcionándole al sistema cierto grado de inteligencia y decisión: El siguiente programa despliega 10 veces una cadena de caracteres, como características especiales se utiliza la INT 21H y su función 9, exige que el registro par DS:DX contenga la dirección inicial de la cadena a desplegar, la cadena debe terminar con el signo “$”, la instrucción para control de iteración es LOOP que salta a la localidad que repite la INT 21H y decrementa a CX hasta que llegue a cero.

Figura 65. Ejemplo de iteración utilizando la instrucción “LOOP”83

Observe que la cadena se encuentra entre comillas simples, seguida por un espacio, el valor hexadecimal 0DH (retorno de carro), otro espacio, el valor hexadecimal 0AH (código de línea nueva), otro espacio y finalmente el símbolo “$” (terminación de cadena para ensamblador).

Figura 66. Iteración con “DEC BX” y condición de salto “JNZ”84

Variante del programa 1: Una variante del anterior programa utiliza dos instrucciones para controlar el bucle, la primera sirve para usar el registro BX como una variable, que se carga con la cantidad de veces que se quiere desplegar la cadena e ir decrementando de uno en uno, utilizando la instrucción “DEC BX”,

83

ROJAS, 1997

84

para poder bifurcar en función del resultado de la bandera “NZ”, la instrucción para generar la bifurcación es “JNZ” (Jump if NotZero) si no es igual a cero despliega nuevamente la cadena, si es igual a cero termina el programa con la interrupción “INT 20”.

Figura 67. Iteración utilizando el contador “CX” y el salto condicional “JCXZ”85

Variante del programa 2: Esta variación hace uso del registro CX como contador, también utiliza la instrucción JCXZ (Jump if CX = 0) que controla la condición de salto, con esto se ha observado que existen varias formas en assembler de llegar al mismo resultado o hacer la misma función.

El ejercicio y práctica constante con la programación en lenguaje ensamblador permite con el tiempo adquirir habilidades y competencias, con las que el programador puede determinar las instrucciones, su disposición y la estructura general del programa buscando mejorar la velocidad de ejecución y estructura del código.

Programa utilizando interrupciones

Este programa utiliza la función 1 de la interrupción BIOS, la cual cambia la forma del cursor, la función a utilizar se carga en el registro AH y el código del cursor en CX.

85

Figura 68. Uso de las Interrupciones86

Para regresar el cursor a su modalidad predefinida, usualmente una raya al piso, se cambia la línea que dice “MOV CX, 0607”, valido para las tarjetas adaptadoras compatibles con color. Al salir de Debugger (Q), el curso regresa a su estado normal.

El siguiente programa utiliza la interrupción 21H de DOS, empleando dos funciones, la primera “AH=1” lee el teclado y la segunda “AH=2” escribe en la pantalla, el programa lee caracteres del teclado hasta encontrar <CR> (retorno de carro).

Figura 69. Uso de la interrupción 21H de DOS

El siguiente programa de ejemplo sirve para afianzar los temas expuestos, ensamblado, ejecución, guardar y cargar el archivo, desensamblar y ejecutarlo nuevamente, este programa permite ocultar o mostrar un archivo, después de ocultarlo tendrá que recurrir a otro medio para visualizarlo.

86

Figura 70. Programa que permite ocultar o mostrar un archivo87.

El anterior código está basado en un algoritmo que previamente se ha diseñado, como toda fase de diseño de un proyecto hay que tener primero un conocimiento absoluto de las instrucciones y modo de ejecución, posteriormente se emplea los conocimiento en programación para diseñar el algoritmo correspondiente para finalmente convertirlo en el lenguaje que se utiliza para lograr el objetivo del proyecto.

Para este caso presentamos primero el código para que el estudiante se acerque más a las instrucciones y se familiarice con ellas, de esta forma se puede comenzar un análisis de cada instrucción, con respecto al algoritmo siguiendo pautas de ingeniería inversa. Este es el algoritmo en pseudocódigo.

87

INICIA:

PONER EN BLANCO LA PANTALLA

PREGUNTAR POR LA FUNCION A REALIZAR PREGUNTAR POR EL NOMBRE DEL ARCHIVO IF FUNCION ES „E‟

THEN OCULTAR ARCHIVO ELSE

MOSTRAR EL ARCHIVO END IF

TERMINA

En el caso del Windows, como alternativa para visualizar archivos ocultos se puede recurrir al explorador de Windows, menú /Herramientas/Opciones de carpeta, pestaña VER y seleccionar “mostrar todos los archivos y carpetas ocultas”, con esto podrá ver el archivo oculto y con clic derecho/Propiedades deseleccione la opción “oculto”.

Figura 71. Interfaz del programa anterior, ventana DOS88.

88

Actividades de Autoevaluación de la UNIDAD

1. Realizar una investigación mediante consulta en internet sobre los últimos microprocesadores para servidores, equipos de escritorio y portátiles.

2. Investiga cual es el ranking de las mejores supercomputadoras.

3. Consulta las características de los últimos procesadores ofrecidos por las empresas INTEL y AMD.

4. Disponer de un equipo de cómputo y del tiempo necesario para probar cada programa propuesto en la lección “Ejemplos de aplicación” en el Capítulo 3 utilizando el intérprete Debugger, no se debe estar trabajando en otros programas o tener información importante susceptible de ser perdida, al utilizar Debugger pueden generarse ciclos infinitos o bloquear el sistema. Si sucede un bloqueo reinicie la máquina. La utilización de Debugger dentro de parámetros controlados como los ejercicios propuestos no implican perdida de información, es recomendable consultar la bibliografía propuesta si quiere profundizar en estos temas.

5. Descargar el emulador “SimuProc” e instalarlo en el equipo, con compatibilidad “Windows XP”, descargar la documentación respecto a SimuProc, realizar lectura del documento.

6. Proceder a ingresar de forma manual cada instrucción estudiando el comportamiento y las microoperaciones involucradas.

7. SimuProc tiene una serie de programas de demostración los cuales puede abrir y ejecutar, es conveniente que los estudie paso a paso para entender su funcionamiento.

8. Realizar el algoritmo, diagrama de flujo e introducir en el intérprete Debugger, guardar, cargar y ejecutar programas sencillos que involucren movimiento de registros, operaciones aritméticas, comparaciones y bifurcaciones. por ejemplo:

a. Área de un cuadrado, triangulo, círculo o alguna superficie geométrica.

b. Serie de Fibonacci. c. Factorial de un número.

9. Realizar el algoritmo, diagrama de flujo, código fuente, compilar y ejecutar programas sencillos en SimuProc que involucren movimiento de registros, operaciones aritméticas, comparaciones y bifurcaciones. por ejemplo:

a. Área de un cuadrado, triangulo, círculo o alguna superficie geométrica.

b. Serie de Fibonacci. c. Factorial de un número.

Fuentes Documentales de la Unidad 1 DOCUMENTOS IMPRESOS

Stallings, William. “Organización y Arquitectura de Computadores”. ( 5ª edición ). Editorial Prentice-Hall. Madrid, 2000.

González, Vásquez José Adolfo. (1992). Introducción a los microcontroladores: hardware, software y aplicaciones. Editorial McGraw-Hill.

Rojas, Ponce Alberto. (1997). “Ensamblador Básico”. Editorial Computec. AlfaOmega Santafé de Bogotá.

Uruñuela, José Mª. “Microprocesadores: Programación e Interconexión”. ( 2ª edición ). Editorial Mc Graw Hill. España, 1995.

Tokheim, Roger. “Fundamentos de los Microprocesadores”. ( 2ª edición ). Editorial Mc Graw Hill. México, 1985.

Vesga, Ferreira Juan Carlos. (2007). Microcontroladores Motorola – Freescale: Programación, familias y sus distintas aplicaciones en la industria.

CEKIT. (2002). Curso Práctico de Microcontroladores: Teoría, Programación, Diseño, Prácticas Proyectos completos. Editorial Cekit. Pereira-Colombia.

Ureña, López Alfonso, Sanchez, Solano Antonio Miguel, Martin, Valdivia María Teresa & MANTAS, Ruiz Jose Miguel. (1999). Fundamentos de informática. Editorial Alfaomega & ra-ma. Santafé de Bogotá.

Barry B. B. (1995).Los microprocesadores Intel 8086/8088, 80186, 80286, 80386 y 80486, Arquitectura, programación e interfaces. ( 3ª edición ). Prentice Hall Hispanoamerica, S.A.

Téllez, Acuña Freddy Reynaldo. (2007). Módulo de Microprocesadores y Microcontroladores. UNAD.

Valdivia, Miranda Carlos. (n. d). Arquitectura de equipos y sistemas informáticos. Editorial Paraninfo.

Angulo, Usategui José María. (n. d). Microcontroladores PIC. Diseño practico de aplicaciones.

DIRECCIONES DE SITIOS WEB

Simuproc, extraído el 23 de Julio de 2013 desde

https://sities.google.com/site/simuproc/home MASM32, extraído el 23 de Julio de 2013 desde

http://www.masm32.com

Dispositivos lógicos microprogramables, extraído el 11 de Julio de 2011 desde