14
MICROPROCESADORES Y CONTROLADORES PRACTICAS DE LABORATORIO TUTOR HECTOR URIEL VILLAMIL GONZALEZ De NELSY SANCHEZ TORRES 40091533 YULBREY BAUTISTA ROJAS 1075233081 MARIA ASEBEL RUMIQUE ARIAS 30521356 ANGELICA SIERRA SERNA 38667452 ALEXANDER VAENCIA UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA

Practicas de Lab Oratorio de Microprocesador y Contralador

Embed Size (px)

Citation preview

Page 1: Practicas de Lab Oratorio de Microprocesador y Contralador

MICROPROCESADORES Y CONTROLADORES

PRACTICAS DE LABORATORIO

TUTOR

HECTOR URIEL VILLAMIL GONZALEZ

De

NELSY SANCHEZ TORRES

40091533

YULBREY BAUTISTA ROJAS

1075233081

MARIA ASEBEL RUMIQUE ARIAS

30521356

ANGELICA SIERRA SERNA

38667452

ALEXANDER VAENCIA

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD

ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA

CEAD FLORENCIA

PUERTO RICO CAQUETA

CODIGIO DE CURSO 309696

2011.

Page 2: Practicas de Lab Oratorio de Microprocesador y Contralador

1. DIAGRAMA DE FLUJO DE LA CALCULADORA

no

si

no

si

no

si

no

si

INICIOINICIO

Num, num 1, num2Resultado char

Lea numero 1Numerous 2

Lea numero 1Numerous 2

Lea la operacion

Lea la operacion

Operacion =”+”

Operacion =”+”

Resultado =n1+n2n1+n2

Resultado =n1+n2n1+n2

Operacion= “_”

Operacion= “_”

Operacion= “*”

Operacion= “*”

Resultado=N1-n2

Resultado=N1-n2

Resultado=N1*n2

Resultado=N1*n2

Operacion= “/”

Operacion= “/”

Resultado=N1/n2

Resultado=N1/n2

Escriba=El Resultado es:

Escriba=El Resultado es: finfin

Page 3: Practicas de Lab Oratorio de Microprocesador y Contralador

CODIGO FUENTE EN SIMUPROC DE LA CALCULADORA

MSG -------------------MENU-------------------- *MSG 1 INTRODUCIR VALORES *MSG 2 SALIR DEL PROGRAMA *MSG -------------------------------------------------*LDT ELIJA UNA OPCIÓNCMP 102JMA 110JEQ 112CMP 101JEQ 114JME 0#100011011100101#110MSG SU NUMERO ES MAYORJMP 0MSG "ADIOS"HLTLDT INTRODUZCA EL PRIMER NUMEROSTA 50LDT INTRODUZCA EL SEGUNDO NUMEROSTA 51MSG *******************************MSG ---------MENU ARITMETICO-------MSG QUE DESEA HACERMSG 1 SUMARMSG 2 RESTARMSG 3 MULTIPLICARMSG 4 DIVIDIRMSG 5 VOLVER AL MENU

PRINCIPALMSG -------------------------------MSGMSGMSG SU OPCION ESLDTCMP 105JMA 112JEQ 0CMP 104JEQ 80CMP 103JEQ 150CMP 102JEQ 140

CMP 101

JEQ 130JME 118#80LDA 50DIV 51EAP LA DIVISION ESJMP 118HLT#150LDA 50MUL 51EAP LA MULTIPLICACIÓN ESJMP 118HLT#140LDA 50SUB 51EAP LA RESTA ESJMP 118HLT#130LDA 50

Page 4: Practicas de Lab Oratorio de Microprocesador y Contralador

ADD 51EAP LA SUMA ES

JMP 118HLT

Page 5: Practicas de Lab Oratorio de Microprocesador y Contralador
Page 6: Practicas de Lab Oratorio de Microprocesador y Contralador
Page 7: Practicas de Lab Oratorio de Microprocesador y Contralador

2. Diseñe un programa que represente la solución matemática a un problema. El algoritmo para hallar los números primos es el siguiente:

Page 8: Practicas de Lab Oratorio de Microprocesador y Contralador

PROGRAMA

leo limitenum=1MQ num<=limite Haga    Si num<=3        Imprima Num    Sino Si num % 2 == 0                Break            Sino                x=3                raiz=RaizC(num)                MQ x<=raiz Haga                    Si num % x ==0 break SI                    x= x+2                FinMQ                imprima num            FinSi    FinSinum=num+1FinMQFIN PROGRAMA

//Programa Numeros Primos //Leo el limite o valor hasta donde quiero hallar números primos //inicializo num en 1 //Repito este bucle hasta que num > limite 

//Si el modulo de num/2 = 0 es porque el numero es par. 

//aca RaizC() es la funcion que se explica más adelante.

uncion RaizC() y=1 mq (y != raiz) ó (y != raiz+1) haga     raiz = y     y = ( y + ( num / y )) / 2 fin mq

Funcion para hallar la raiz cuadrada de un numero //inicializo y en 1 //Hago un Bucle que no termine hasta que "y" sea diferente de raiz o raiz+1 

Ahora para escribirlo en assembler organizare la memoria del simulador asi:

Variable Dirección Memoria

Descripcion

limitenum

xraizy 

2301

3435363738 

3A3B3C3D

Limite hasta donde quiero que lleguen los primos empieza en 1 y termina cuando llega a limite variable usada para hallar si el numero es primo variable raiz, almacena la raiz de num variable usada en RaizC() 

Constante numero 2  (en binario 10) Constante numero 3  (en binario 11) Constante numero 0  (en binario 0) Constante numero 1  (en binario 1)

Page 9: Practicas de Lab Oratorio de Microprocesador y Contralador

Ahora pasemos ese Algoritmo a Assembler, al frente de cada instrucción esta comentado después del punto y coma que hace esta.El programa quedaria asi:

Dir Instrucción y Parámetros

Comentarios

00: 01: 02: 03: 04: 05: 06: 07: 08: 09: 0A: 0B: 0C: 0D: 0E: 0F: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 1A: 1B: 1C: 1D: 1E: 1F: 20: 21: 22: 23: 24: 25: 26: 27: 28:

NOPMOV 35,3DLDTMOV 34,AXMOV AX,34CMP 35JME 32MOV AX,35CMP 3BJMA DMOV AX,35EAPJMP 30MOV AX,35DIV 3AMOV AX,BXCMP 3CJMA 13JMP 30MOV 36,3BMOV 38,3DMOV AX,38CMP 37JEQ 23MOV AX,37INC AXCMP 38JEQ 23MOV 37,38MOV AX,35DIV 38ADD 38DIV 3AMOV 38,AXJMP 15MOV AX,37CMP 36JME 2EMOV AX,35DIV 36MOV AX,BX

;No operacion;num = 1;leo del teclado el Limite;almaceno limite en 34;cargo limite en AX (Comienzo MQ);comparo limite con num;Si limite es menor que num voy a fin de MQ;AX=num;comparo num con 3;si num > 3 voy a SINO;AX = num;Escribo num en pantalla;voy a FINSI;AX=num SINO;AX = AX/2 , BX = modulo;paso el modulo a AX;comparo mod con 0 ;salto si mod > 0;break;x=3;y=1;cargo Y en AX (COMIENZO MQ del raiz());comparo y con raiz;si y=raiz salgo del mq;AX=raiz;AX=AX+1;comparo raiz con y;si raiz=y salgo del mq;raiz = y;AX = num;AX = num/y;AX = AX + Y;AX = AX / 2;y = al valor del Registro AX;Salto a repetir el blucle MQ del raizC();FINMQraiz() y AX = raiz (COMIENZO MQ2);comparo raiz con y;si raiz < x voy a fin MQ2;AX = num;AX = AX / x;AX = residuo que está en BX

Page 10: Practicas de Lab Oratorio de Microprocesador y Contralador

29: 2A: 2B: 2C: 2D: 2E: 2F: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 3A: 3B: 3C: 3D: 3E: 3F: 40:

CMP 3CJEQ 30INC 36INC 36JMP 23MOV AX,35EAPINC 35JMP 04HLT

10

10 11 0 1

;Comparo residuo con 0;si residuo = 0 salgo del SI;x= x+1;x= x+1;voy a MQ2;AX = num FIN MQ2;imprimo num en pantalla;FINSI;hago loop;FIN MQ y PROGRAMA

;Inicializo raiz en 2

;Con el editor de memoria del simulador almaceno las constantes ;Constante 2 ;Constante 3 ;Constante 0 ;Constante 1

Page 11: Practicas de Lab Oratorio de Microprocesador y Contralador

CONCLUSIONES

Esta práctica nos permitió conocer un poco sobre el manejo del simulador, aunque nos causo mucha dificultad, este trabajo lo realizamos en grupo con los compañeros de nuestro municipio.