Está en la página 1de 26

MICROPROCESADORES Y MICROCONTROLADORES 

UNIDAD:1 PASO:2

ELABORADO POR:
LUIS STIVEN PULGARIN MUÑOZ, CODIGO: 1006248296
MIGUEL ERASMO MORALES, CODIGO: 1151938915
EDWIN MEJIA CORREA, CODIGO: 9739219

JAIRO HUMBERTO ZAMBRANO, CODIGO:1085271085

TUTOR:
NESTOR JAVIER RODRIGUEZ
CODIGO CURSO:
309696_24

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA _UNAD ESCUELA DE


CIENCIAS BÁSICAS, TECNOLOGÍAS E INGENIERÍAS – ECBTI
PALMIRA VALLE DEL CAUCA
MARZO DEL 2020

Introducción
Mediante el uso de software Simuproc el cual por medio del leguaje assambler nos permite la

simulación de un microprocesador logrando por medio de este identificar características internas

como lo son compuertas lógicas ALU, RAM, ROM. Estos microprocesadores son un circuito

integrado de un sistema informático permitiendo de tal manera operaciones lógicas aritméticas

con alto grado de rapidez, logrando la función de un sistema operativo y el software de

aplicación permitiendo operar con una o más CPU.

En este trabajo se encuentran una serie de ejercicios desarrollados de manera individual de los

cuales cada estudiante eligió de manera autónoma e individual, permitiendo con los avances

lograr consolidar un solo trabajo de manera colaborativa mediante la identificación de cada uno

de los aportes logrando definir el funcionamiento de cada uno de estos con conceptos propios de

cada uno de los ejercicios planteados.

Resumen
Se logra identificar el funcionamiento de un microprocesador haciendo uso del software

Simuproc el cual emplea el leguaje Assembler y mediante la solución de una serie de ejercicios

que se logran codificar permitiendo la solución de característica propia a lo que valla dirigida.

Permitiéndonos comprender el uso interno que presenta un micro procesador.

En el presente trabajo se encuentran cinco ejercicios de los cuales se proceden a desarrollasen

de manera individual eligiendo un solo ejercicio por estudiante, este en cargándose de presentar

su previo desarrollo por medio del simulador Simuproc y sustentado su funcionamiento mediante

la creación de un video explicando logrando demostrar los métodos que utilizo para su correcto

funcionamiento.

Objetivos

 Comprender el funcionamiento del simulador Simuproc mediante el lenguaje Assembler.


 Clasificar estrategias que permitan la fácil solución de un problema planteado.

 Comprender el funcionamiento de un microprocesador y su importancia en un sistema.

 Identificar características internas de un microprocesador y lograr comprender como

trabaja este.

 Tener claridad del uso en específico que se le puede dar a un microprocesador.

Desarrollo de la actividad
Desarrollo del paso 2: El estudiante junto con el grupo de trabajo colaborativo desarrollan el

paso 2: En primera instancia el estudiante hace revisión del paso 2 solicitado e identifica los

aspectos más importantes como por ejemplo las variables que intervienen.

Desarrollo ejercicio 1: por Luis Stiven pulgarin muñoz


Explicación del software Simuproc:
 Mediante el software simuproc logramos el desarrollo de los presentes ejercicios
permitiéndonos simular lo que sería un procesador por medio del lenguaje ensamblador.

En simuproc tenemos un panel principal que sería el siguiente


Ejercicio a desarrollar:

1). Realizar el promedio de la suma de las edades de los integrantes del grupo (ingresar los
datos de los valores por medio de teclado)
 Recordemos que para calcular el promedio de las edades primero debemos realizar la
sumatoria de las edades y posteriormente a esto lo dividimos obtenido el resultado final.
Mediante intrusiones logramos desarrollar el presente ejercicio de la siguiente manera:
 msg: con esta instrucción se logra solicitar o mostrar por pantalla una intrusión.
 in Ax,1: con esta instrucción logramos la creación o la operación dentro del programa de
números flotantes con el fin de que sea un numero entero o decimal no lo muestre con
exactitud.
 stf: con esta instrucción logramos guardar en memoria y dejar libre Ax para el ingreso de
un nuevo dato.
 Addf: con esta instrucción logramos sumar.
 divf: con esta instrucción logramos dividir.
 out 1,Ax: con esta instrucción logramos mostrar el resultado de todas las operaciones.
 hlt: con esta función logramos dar por terminado el proceso del programa.
Video Luis Stiven pulgarin Link
https://youtu.be/YOW0tR9qbQM

Ejercicio 2 desarrollado: por miguel Erasmo morales

2. Desarrollar un programa para hallar el área de un trapezoide (ingresar los datos de los
valores por medio de teclado).
AREA DE UN TRAPEZOIDE:
el area de un trapezoide asimetrico es decir que sus lados son diferentes se realiza por medio de
la triangulacion para encontrar mas facil el area luego se suman estas areas.
Entonces los pasos a seguir son:
1. se divide en dos triángulos

https://www.universoformulas.com/matematicas/geometria/area-trapezoide/
2. se suma las áreas de los dos triángulos

https://www.universoformulas.com/matematicas/geometria/area-trapezoide/

el area es:
BD∗h ABD BD∗h BCD
AREA TRAPEZOIDE= +
2 2
BD= Es la base de los dos triangulos
h ABD = la altura del primer triangulo
h BCD= la altura del segundo triangulo

utilizamos la instrucción soportada de la página oficial de simuProc para realizar el código


https://sites.google.com/site/simuproc/instrucciones-soportadas
1. código:
#SimuProc 1.4.2.0
msg ********************************************************
msg ejercicio 2. AREA DE UN TRAPEZOIDE
msg ********************************************************
cla; reinicia el ax en 0
ldt INGRESE EL VALOR DE BD; desde teclado pedimos el valor de BD
sta 01b; guardamos en la posición de memoria 01b
ldt INGRESE EL VALOR DE hABD; desde teclado pedimos el valor de hABD
sta 01c; guardamos el VALOR DE hABD la posición de memoria 01c
mul 01b ; mult lo q hay en ax es decir valor hABD con lo que hay en 01b valor BD
sta 01e; guardamos LA MULTIPLICACION en la posición de memoria 01e
div 01a; dividimos lo que hay en ax con lo que hay en 01a que es 2
sta 01f; guardamos LA DIVISION en la posición de memoria 01f
ldt INGRESE EL VALOR DE hBCD; desde teclado pedimos el valor de hBCD
sta 01d; guardamos el VALOR DE hBCD la posición de memoria 01d
mul 01b ;mult lo q hay en ax es decir valor hBCD con lo que hay en 01b valor BD
sta 020; guardamos LA MULTIPLICACION en la posición de memoria 020
div 01a; dividimos lo que hay en ax con lo que hay en 01a que es 2
sta 021; guardamos LA DIVISION en la posición de memoria 021
add 01f ; sumamos lo que hay en ax es decir la división anterior 021 con 01f
msg EL AREA DEL TRAPEZOIDE ES:
eap; mostrar en pantalla lo que hay en ax es decir la división
hlt; termina el programa
#01A
10
El editor con las instrucciones

2.

pruebas:
se realiza una prueba para verificar el programa
BD=6
h ABD Y hBCD =2

AREA TRAPEZOIDE NOS DA 12


VERIFICAMOS
BD∗h ABD BD∗h BCD
AREA TRAPEZOIDE= +
2 2
6∗2 6∗2
AREA TRAPEZOIDE= + =12
2 2
Es correcto:
01A= 10 (2 DECIMAL) QUE ES EL VALOR DE LA DIVISION
01C=110 (6 DECIMAL)EL VALOR DE BD

01C= 10 (2 DECIMAL ) h ABD


01D=10 (3 DECIMAL) h BCD
01E= 1100(12 DECIMAL) LA MULTIPLICACION ENTRE hABD Y BD

01F=110(6) la division de 01E (12) y 01a (2


decimal)
020=1100 la multiplicación entre hBCD
021= 110(6) la division de 020(12) y 01a (2)
Video MIGUEL ERASMO MORALES Link
No presenta hasta el momento LINK

Desarrollo 3 ejercicio: por Edwin mejía correa

3). Desarrollar un programa para hallar el área de una circunferencia (ingresar los datos de
los valores por medio de teclado).
Solución:
Para el desarrollo de este ejercicio se tiene en cuenta que el área de una circunferencia se puede
hallar mediante la fórmula:
A=r 2∗π
Teniendo en cuenta esta fórmula nos damos cuenta que la constante π tiene un valor de 3.1415
que para programación en el simulador Simuproc hace referencia a un número decimal con punto
flotante, en este orden de ideas se busca que tanto para el ingreso de la constante como la del
valor del radio (r) se puedan ingresar números decimales enteros o con punto flotante.
Asi las cosas se tiene la siguiente programacion en lenguaje de bajo nivel Assembler:

En la anterior
figura podemos
observar una serie de instrucciones utilizadas para programar el microprocesador para obtener el
resultado del área de la circunferencia explicaremos cada una de ellas.
INSTRUCCIÓN ACCIÓN
cla Permite mantener AX en cero al iniciar el
programa para evitar errores.
msg Nos permite mostrar un mensaje en el
dispositivo de salida en este caso el
monitor
in AX,1 Permite que el usuario ingrese un valor
tanto en decimal entero o con punto
flotante.
stf 01A Guarda el dato ingresado en la posición
asignada.
mulf 01A Multiplica el número guardado en la
posición 01A teniendo en cuenta que su
exponente es dos, esto quiere decir que se
multiplica por sí mismo.
out 1,AX Muestra el resultado en el dispositivo de
salida.
hlt Instrucción utilizada para dar fin al
programa.

Es de tener en cuenta que esta serie de instrucciones se utilizan para programar números
decimales con punto flotante ya que las intrusiones como: ldt, sta, stb entre otras solo admiten
números decimales enteros.

Dentro del simulador del procesador podemos observar las instrucciones de programación en la
dirección asignada y su valor, además nos permite utilizar dispositivos de entrada y de salida
como el monitor y el teclado, los valores asignados mediante el desarrollo en AX y BX y el
control de la velocidad de simulación.
El
dispositivo de salida como la pantalla nos va mostrando paso a paso las salidas o proyecciones
programadas que se van ejecutando a medida que avanza la simulación y el último dato

Una vez terminada la simulación nos aparece un cuadro de estadísticas que nos informa: el
tiempo promedio de la ejecución, las operaciones aritméticas utilizadas, instrucciones ejecutadas,
cantidad de datos de entrada y de salida.
El Conversor de datos nos permite convertir los números decimales enteros y de punto flotante
en lenguaje binario, Hexadecimal, octal, entre otros.

Haciendo el ejercicio en la calculadora tenemos que:

Si revisamos este valor con el obtenido con el simulador nos damos cuenta que es igual el
resultado con muy buena precisión incluyendo el punto fijo flotante.

Video :EDWIN MEJIA CORREA Link


https://youtu.be/VtCu3y91pEE

Ejercicio 4 desarrollado: por Jairo Humberto Zambrano

4) Diseño de un programa que ordena tres números de menor a mayor, los cuales se solicitan el
ingreso por el usuario a través del teclado

Jairo zambrano
Código utilizado

#SimuProc 1.4.2.0

;ordenador de tres numeros de menor a mayor

; nos grafica el mensaje en la pantalla

msg escoja una opcion

msg 1 ingrese tres numeros

msg 2 ordenar de menor a mayor

msg 3 o mayor de 3 para salir

ldt

;nos pide el ingreso de datos por medio del teclado

cmp 51

; compara ax con el dato en la memoria 51 si ax es igual continua si no salta

jme 60

; si el dato es menor a las opciones ejecuta desde el numeral 60

jeq 70

; si la opcion es igual a la memoria 51 ejecutamos desde el numeral 70

cmp 52

; compara ax con el dato en la memoria 52 si ax es igual continua si no salta

jeq 80

; si la opcion es igual a la memoria 52 ejecutamos desde el numeral 80

cmp 53

; compara ax con el dato en la memoria 53 si ax es igual continua si no salta

jeq 62

;si la opcion es igual o mayor a la memoria 53 ejecutamos desde el numeral 62

hlt

; termina el proceso

#50

;numeros en binario
0

;numero 0

;numero 1

10

;numero 2

11

;numero 3

100

;numero 4

#60

msg opcion invalida

jmp 0

; salto incondicional a la memoria 0 en este caso reiniciar el programa

msg final del ejercicio

msg autor jairo zambrano

hlt

#70

; cuando la opcion es uno-ingrasar datos

;mov guarda en cx lo que esta en la memoria 53

mov cx,53 ;se esta inicializando el conteo

mov bx,50 ;se esta inicializando el conteo

msg escriba un numero

ldt

;ingreso de datos por el teclado

stb 56 ; Ax=>[mem + Bx] guarda el numero ingresado en la momeria en la direccion mem+bx

inc bx ;incrementa en 1 la direccion que guarda el segundo numero ingresado


loop 72 ; salta al dato en la memoria 72 que es el mensaje de "escriba un numero"

jmp 0 ;salta a la direccion a ejecutar en este caso la memoria cero osea que nos vuelve a mostrar las
opciones

#80

;cuando la opcion es dos - organizar los datos

mov cx,52 ; guanda en cx lo q esta en la memoria 52

lda 56 ;carga en ax lo que esta en la memoria 56

cmp 57 ; compara el dato en ax con la memoria 57 si son iguales continua si no salta

jme 90 ; compara con la memoria 90 y si es menor salta a la memoria 90

jeq 90 ; compara los valores y si son iguales salta al dato de la memoria 90

jma 100 ; compara el dato y salta a la memoria 100 si el dato es mayor

#90

lda 56 ;carga en ax lo que esta en la memoria 56

cmp 58 ; compara el dato en ax con la memoria 58 si son iguales continua si no salta

jma 104 ; salta si los flag NyZ son cero quiere decir que el numero es menor y saltaria a la memoria 104

lda 57 ;carga en ax lo que esta en la memoria 57

cmp 58 ; compara el dato en ax con la memoria 58 si son iguales continua si no salta

jme 110 ; compara con la memoria 110 y si es menor salta a la memoria 110

jeq 110 ; compara los valores y si son iguales salta al dato de la memoria 110

jma 108 ; salta si los flag NyZ son cero quiere decir que el numero es menor y saltaria a la memoria 108

#100

mov 55,56 ;mov guarda en 55 lo que esta en la memoria 56

mov 56,57

mov 57,55

jmp 90 ;salta a la direccion a ejecutar en este caso la memoria 90

mov 55,56
mov 56,58

mov 58,55

jmp 93 ;salta a la direccion a ejecutar en este caso la memoria 93

mov 59,57

mov 57,58

mov 58,59

jmp 110 ;salta a la direccion a ejecutar en este caso la memoria 110

#110

mov cx,53 ;mov guarda en cx lo que esta en la memoria 53

mov bx,50

msg el orden es:

ldb 56 ;[mem + Bx]=>Ax ; carga en Ax el contenido de la memoria 56+bx

eap ;escribe en pantalla el contenido de Ax

inc bx ;incrementa en 1 el valor de bx

loop 113 ;decrementa cx y salta a 113 si cx no es cero

jmp 0; salta a la direccion a ejecutar en este caso la memoria cero

simuproc

abrimos el archivo en simuproc


Presionamos el botón editor

Presionamos el botón abrir


Escogemos el archivo a simular “paso 2” en nuestro caso y nos aparecerá el código en el cual
presionamos en la flecha verde para pasarlo al editor 1 y a continuación lo enviamos a la memoria
Ahora ya con los datos en la memoria podemos iniciar el programa
Presionamos en ejecutar y el programa empieza a funcionar

Observación: aporte presentado hasta el momento seria el link

Video :JAIRO HUMBERTO ZAMBRANO Link

https://youtu.be/O55APVdA7Ng
https://www.youtube.com/watch?v=O55APVdA7Ng

Conclusiones
 Mediante el presente trabajo logramos comprender características que permiten
interiorizar el funcionamiento de un microprocesador internamente y su importancia que
presenta en la función de un sistema, de esta manera logrando ser de gran ayuda en
conocimientos previos que pueden ser de gran aporte para desarrollado tanto en nuestro
campo laboral como estudiantil.
 Finalmente encontraremos en el desarrollo del paso 2 de la unidad 1, la programación y
simulación de los ejercicios propuestos por el tutor para esta actividad, explicando cada
una de las instrucciones utilizadas y los datos simulados en el simulador Simuproc,
además se utilizan dispositivos de entrada y de salida como lo son el teclado y la pantalla
simulada de un ordenador.
Referencias bibliográficas
Hernández, E. (2009). Microprocesadores. Ed. El Cid Editor. (Pp. 5 -23) Recuperado de:
http://bibliotecavirtual.unad.edu.co:2460/lib/unadsp/reader.action?
ppg=3&docID=3183363&tm=1527288594447
Rocabado, S. (2009). Arquitectura y organización de la computadora: microprocesadores y
programación Assembler. Editorial de la Universidad Nacional de La Plata. (Pp. 24-66).
Recuperado de: http://bibliotecavirtual.unad.edu.co:2460/lib/unadsp/reader.action?
ppg=1&docID=4499097&tm=1527288958603
Williams, Arthur. (2009). Microprocesadores, dispositivos periféricos, optoelectrónicos y de
interfaz. Ed. McGraw-Hill. (Pp. 5-42). Recuperado de:
http://bibliotecavirtual.unad.edu.co:2460/lib/unadsp/reader.action?
ppg=31&docID=3191906&tm=1527289146227
Miranda, V. (2005). Arquitectura de equipos y sistemas informáticos. 4th ed., Paraninfo.
Recuperado de: http://bibliotecavirtual.unad.edu.co:2619/apps/pub/3BDI/GVRL?
u=unad&sid=GVRL

También podría gustarte