Practicas Lab 03[1]

download Practicas Lab 03[1]

of 4

Transcript of Practicas Lab 03[1]

Prctica N3: Programacin de microprocesadores con Simuproc

Cristian ArdilaJaqueline CombitaCarolina GmezCamilo [email protected]

MICROPROCESADORES Y MICROCONTROLADORES - UNAD

ResumenPara el desarrollo de este trabajo se empleara el uso de la herramienta Proteus 7.5, en la que se disearn 2 programas,

Palabras ClaveProgramacin, Diagramas de flujo, Calculadora, Diagrama de flujo, Ensamblador, Simuproc.Abstract---For the development of this work employed the use of the tool SIMUPROC, which was designed two programs, the first of which will allow me to receive all four numbers and perform basic arithmetic operations, the second program is going to represent the solution mathematics to a problem, in this case the program is going to system the equations lineal the tree or tree. INTRODUCCIONEl presente informe se basa en el esfuerzo de la programacin en lenguaje ensamblador para microprocesadores usando el simulador SIMUPROC descrito en la unidad, el cual es una herramienta bsica para el aprendizaje de dicho lenguaje de programacin.

simuproc

Simuproc es un simulador de un proceso hipottico con el cual tiene por objetivo el aprendizaje de nociones bsicas para empezar a programar en lenguaje ensamblador, en el cual se puede visualizar todo el proceso interno de ejecucin del programa a travs de cada ciclo del procesador.

El simulador incluye:

Un editor con resaltador de sintaxis para escribir programas ms fcilmente. Un conversor de bases (para hacer pasajes de una base origen a otra base destino, soportando todas las bases desde base 2 a base 36). Conversin de nmeros de punto flotante de decimal a IEEE 754 y viceversa.

El simulador solo reconoce lenguaje ensamblador el cual es un lenguaje que utiliza nemnicos para la escritura de cualquier programa. Luego de realizar el programa lo cargamos en el simulador. De la siguiente manera podemos hacerlo:1-Se puede cargar desde un archivo.2-Usando el editor interno.3-Ingresando las instrucciones manualmente.

Componentes del Simuproc

MemoriaLa memoria es el dispositivo que almacena toda la informacin del programa mientras est corriendo, tanto datos como instrucciones.La capacidad de la memoria simulada es de 4096 posiciones de 16 bits cada una: desde 0 a 4095 en decimal.

Registros GeneralesEste procesador consta de 3 registros de propsito general, AX, BX y CX, cada uno con 16 bits de capacidad, registros apuntadores, registros de pila y registros de control.Como registros apuntadores tenemos: PC: Contador de programa. MAR: Registro de direccin de memoria. MDR: Registro de dato de memoria. IR: Instruccin de registro.

Pantalla principal del simulador:

Editor de texto

Pantalla de simulacin del programa

Instrucciones bsicas para realizar algn tipo de programa

ADD [mem]: Sumar: AX = AX + mem.ADD [mem]: Suma nmeros de 32 bits.AND [dest, orig]: Y lgico.CLA: Hace AX = 0.CLC: Limpia el Carry Flag. C = 0.CMC: Complementa (invierte) el Carry Flag.CMP [mem]: Compara AX con [mem].DEC [dest]: Decremento en 1 el destino especificado.DIV [mem]: Dividir: AX = AX / el contenido de la direccin de memoria.DIVF [mem]: Divisin: BX y AX = BX y AX / [mem]y mem+1, en CX queda el residuo de la divisin en enero de 16 bits.EAP: Escribe en Pantalla el contenido del registro AX.FTOI: Conversin de Real a Entero.HLT: Terminar Programa.IN [registro, Puerto]: Lleva al Registro el valor retornado por el puerto especificado.INC [dest]: Incrementa en 1 el destino especificado.ITOF: Conversin de Entero a Real.JC [mem]: Saltar si el Carry Flag esta activado.JEQ [mem]: Saltar si son iguales Si Z = 1, PC = contenido de la memoria.JMA [mem]: Saltar si es Mayor. Si Z = 0 y N = 0, PC = contenido de memoria.JME [mem]: Saltar si es Menor. Si N = 1, PC = contenido de la memoria.JMP [mem]: Salto incondicional. PC = direccin de memoria donde est la siguiente instruccin a ejecutar".JNC [mem]: Saltar si el Carry Flag no est activado. Si C = 0, PC = contenido de memoriaJNE [mem]: Saltar si no son iguales. Si Z = 0, PC = contenido de memoria.JNO [mem]: Saltar si el Overflow Flag no est activado. Si O = 0, PC = contenido de memoria.JO [mem]: Saltar si el Overflow Flag esta Activado.LDA [mem]: Cargue en AX el contenido de la direccin de Memoria especificada. (hay casos donde es mejor usar MOV si se desea pasar datos sin tener que pasarlos por AX).LDB [mem]: La instruccin carga en AX el contenido de memoria almacenado en [mem] + BX.LDF [mem]: Carga en BX y AX un nmero de 32 bits (IEEE) que est almacenado en la dir [mem] y mem+1. En BX quedan los dgitos ms Significativos.LDT: Lee un valor del Teclado y lo lleva al registro AX.LOOP [mem]: Decremento CX y salta a la Pos de memoria si CX no es cero.MOV [dest, orig]: Copia el valor almacenado en el origen al destino. El destino y/o origen pueden ser registros o direcciones de memoria o combinacin de estos.MSG: Muestra un mensaje en pantalla.MUL [mem]: Multiplicar: AX = AX * el contenido de la direccin de memoria.MULF [mem]: Multiplicacin: BX y AX = BX y AX * [mem]y mem+1.NOP: Esta operacin no hace nada.NOT [destino]: NO lgico, invierte los bits del operando formando el complemento del primero.OR [dest, orig]: O inclusive lgico, todo bit activo en cualquiera de los operndoos ser activado en el destino.OUT puerto, registro: Escribe en el puerto especificado, el valor del registro.POP [registro]: Trae de la Pila el ltimo valor llevado por PUSH (indicado por el registro SP) y lo almacena en el registro especificado.PUSH [registro]: Enva el valor del registro especificado a la pila.ROL [dest, veces]: Rota los bits a la izquierda las veces especificadas (en decimal), los bits que salen por la izquierda re-entran por la Derecha. En el Carry Flag queda el ltimo bit rotado.ROR [dest, veces]: Rota los bits a la derecha las veces especificadas (en decimal), los Bits que salen por la derecha re-entran por la izquierda. El Carry Flag guarda el ltimo bit rotado.SHL [dest, veces]: Desplaza los bits a la izquierda el nmero de veces especificado (en decimal), agregando ceros a la derecha, el Carry Flag guarda ltimo bit desplazado.SHR [dest, veces]: Desplaza los bits a la Derecha el nmero de veces especificado (en decimal), agregando ceros a la izquierda, el Carry Flag guarda ltimo bit desplazado.STA [mem]: Guarde el contenido de AX en la direccin de Memoria especificada.STB [mem]: guarda el contenido de AX en la direccin [mem] + BX.STC: Pone el Carry Flag. C = 1.STF [mem]: Guarda en [mem] y mem+1 el contenido de BX y AX.

practica1. Disear un programa que permita recibir nmeros y realizar las cuatro operaciones bsicas de suma, resta, multiplicacin y divisin utilizando una interfaz de usuario adecuada y de fcil manejo.

El Diagrama de flujo es:

El programa es:

; CalculadoraMSG 'Calculadora Camilo G'MSG '1: Sumar'MSG '2: Restar'MSG '3: Multiplicar'MSG '4: Dividir'MSG '0: Salir'MSG 'Que Operacin desea realizar:?'LDT 'Opcin:'CMP 43JMA 0CMP 44JEQ 2DMOV 3C,AXLDT 'Digite el primer nmero:'MOV 3A,AXLDT 'Digite el segundo nmero:'MOV 3B,AXMOV AX,3CCMP 40JEQ 1ACMP 41JEQ 01ECMP 42JEQ 22CMP 43JEQ 26MOV AX,3AADD 3BEAP 'El resultado de la suma es:'JMP 0MOV AX,3ASUB 3BEAP 'El resultado de la resta es:'JMP 0MOV AX,3AMUL 3BEAP 'El resultado de la multiplicacin es:'JMP 0LDA 3BCMP 47JEQ 60MOV AX,3ADIV 3BEAP 'El resultado de la divisin es:'JMP 0MSG 'Gracias'HLT#40110111000#60

MSG 'Error al dividir por 0'JMP 0

conclusiones

Fue de gran importancia el desarrollo de estas prcticas ya que nos involucramos con un lenguaje de programacin, el cual nos servir para desarrollar proyectos en nuestro hacer diario.

Otro aspecto importante es el trabajar con un software desconocido por nosotros llamado Simuproc, el cual es una herramienta poderosa a la hora de hacer programas en assembler. Nos obligo a aprender a manejar un nuevo tipo se software.

Referencias

[1] http://sites.google.com/site/simuproc/[2] http:// simuproc.cjb.net/

Inicio

Opcin 1

Opcin 2

Opcin 3

No

No

Opcin 4

No

Pedir datos a procesar

Sumar datos

Si

Restar datos

Multiplicar datos

Dividir Datos

Si

Si

Si

Preguntar Opcin

Mostrar Resultado