Está en la página 1de 4

MICROPROCESADORES Y MICROCONTROLADORES - UNAD

Prctica N3: Programacin de microprocesadores con Simuproc


Cristian Ardila Jaqueline Combita Carolina Gmez Camilo Galindo Andresk_80@hotmail.com

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.

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.

I. INTRODUCCION El 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.

3-Ingresando las instrucciones manualmente.

Componentes del Simuproc

II. SIMUPROC

- Memoria La 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.

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:

- Registros Generales Este 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:

MICROPROCESADORES Y MICROCONTROLADORES - UNAD

PC: Contador de programa. MAR: Registro de direccin de memoria. MDR: Registro de dato de memoria. IR: Instruccin de registro.

Pantalla principal del simulador:

Instrucciones bsicas para realizar algn tipo de programa


Editor de texto 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.

Pantalla de simulacin del programa

MICROPROCESADORES Y MICROCONTROLADORES - UNAD

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 memoria JNE [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.

III. PRACTICA 1. 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:


Inicio

Pedir datos a procesar

Preguntar Opcin

Opcin 1

Si

Sumar datos

No

Opcin 2

Si

Restar datos

No Multiplicar datos

Opcin 3

Si

No

Opcin 4

Si

Dividir Datos

Mostrar Resultado

El programa es: ; Calculadora MSG 'Calculadora Camilo G'

MICROPROCESADORES Y MICROCONTROLADORES - UNAD

MSG '1: Sumar' MSG '2: Restar' MSG '3: Multiplicar' MSG '4: Dividir' MSG '0: Salir' MSG 'Que Operacin desea realizar:?' LDT 'Opcin:' CMP 43 JMA 0 CMP 44 JEQ 2D MOV 3C,AX LDT 'Digite el primer nmero:' MOV 3A,AX LDT 'Digite el segundo nmero:' MOV 3B,AX MOV AX,3C CMP 40 JEQ 1A CMP 41 JEQ 01E CMP 42 JEQ 22 CMP 43 JEQ 26 MOV AX,3A ADD 3B EAP 'El resultado de la suma es:' JMP 0 MOV AX,3A SUB 3B EAP 'El resultado de la resta es:' JMP 0 MOV AX,3A MUL 3B EAP 'El resultado de la multiplicacin es:' JMP 0 LDA 3B CMP 47 JEQ 60 MOV AX,3A DIV 3B EAP 'El resultado de la divisin es:' JMP 0 MSG 'Gracias' HLT #40 1 10 11 100

0 #60

MSG 'Error al dividir por 0' JMP 0

IV. 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.

V. REFERENCIAS

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