Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Autores, Walter Yesith Gómez Bellón Estudiante de Ingeniería de Software código: c.u. 1711027179,
E
tipos de instrucciones pueden ser
S importante entender que en el tiempo, los seres
4) requeridas para la solución del problema, de acuerdo
humanos siempre han tenido que enfrentar y sortear
con el algoritmo diseñado.
problemas. progresivamente se han estructurado como
oportunidades de avance, en la tecnología sucede lo mismo el
III. INSTRUCCIONES GENERALES PARA REALIZAR
planteamiento de esos problemas se convierten en ejercicios LA ENTREGA
fundamentados, con variables, probabilidades y posteriores
soluciones, para realizar estos ejercicios, se estructuran de
manera sistematizada y hasta con resultados automáticos, por Se debe diseñar el conjunto de instrucciones y la micro
ende, necesitamos generar interacciones dinámicas entre el arquitectura de un procesador que
software y hardware. La Micro arquitectura nos permite permita hacer las siguientes tareas:
entender cómo se generan esas interacciones y cuáles son los
procedimientos y equipos necesarios para generar las mejores 1. Determinar si un número es primo o no.
prácticas en el desarrollo de las soluciones en este documento 2. Se debe diseñar el algoritmo en alto nivel.
verificaremos la importancia de un simple ejercicio sobre la 3. Se debe definir qué instrucciones de bajo nivel
consecución de resultados para un número impar, bajo el son requeridas y diseñar el Conjunto de
ambiente Logism partiendo de la utilización de lenguajes para 1. Instrucciones (ISA).
desarrollo. 4. Se debe definir la estructura de hardware mínima
para poder ejecutar todas las
2
1)
2) DESCRIPCION DE PSEUDOCODIGO EN
JAVASCRIPT
function isCousin(number) {
let desicion = true;
let arrayNumbers = []
if (Number.isInteger(number)) {
if (number != 1 && number != 0) {
for (let i = 2; i < number; i++) {
if (number % i === 0) {
if(number % 1 === 0){
desicion = false IV. INSTRUCCIONES GENERALES PARA REALIZAR
arrayNumbers.push(i) SEGUNDA ENTREGA
console.log("EL NUMERO " + number + "NO ES PRIMO 1. Listado detallado de Instrucciones:
PORQUE ES MULTIPLO DE " + i); a. Li (darle valor al registro)
} b. Rem (obtener el residuo de una división)
} c. Beq (instrucción condicional preguntando si un
} valor es igual a otro)
if(desicion == true){ d. Les (instrucción condicional preguntando si un
alert("el número "+number+" es primo") valor es menor que otro)
}else{ e. Add (instrucción aritmética de suma)
alert("el numero "+number+" no es primo porque es f. Mul (instrucción aritmética de multiplicación)
divisible por "+arrayNumbers) g. Sw (instrucción para guardar un dato en una
} posición de RAM)
} h. Jump (instrucción de control para saltar a otra
} else { línea del programa)
alert("Valor Invalido" ( En este momento determinamos que estas
} son las instrucciones necesarias, lo que significa
} que utilizaría 3 dígitos binarios para el código de
cada instrucción)
2. Nombre Mnemónico de los parámetros que recibe:
a. Li R# valor( R# el número del registro que se le
va a dar valor)
b. Rem R#a, R#b, R#c ( tres operandos que son
residuo, dividendo, divisor)
c. Beq R#e,R#f (dos operandos)
d. Les R#g,R#h ( dos operandos)
e. Add R#i,R#j,R#k ( tres operandos que son
resultado y sus dos sumandos)
f. Mul R#l, R#m,R#n (tres operandos que son
resultado y sus factores)
g. Sw R#1, 0 (R#2) ( primer operando es el valor
a guardar y el segundo operando, es el espacio
a utilizar donde se va a guardar en la RAM)
h. Jump # ( rotulado que indica el renglón donde
se realizara el salto del programa)
3
3. Descripción de una frase indicando que hace en 7. Listado en HEXA del binario que presenta el
términos de lo que recibe como parámetro y su programa realizado:
ejemplo: INSTRUCC CO OPERAN EJEMP SIGNIFICA SIGNIFICA
a. Li R2 5( al registro número 2 se le da el ION D DOS LO DO DO
valor de 5) MATEMAT
b. Rem R1, R2, R3 ( 0 = residuo de 10/5, ICO
li 000 R, valor Li R2 5 Registro R2 Asignar un
suponiendo que R2 vale 10, R3 vale 5) 0 5 valor a un
c. Beq R1,R2 ( R1==R2) registro
d. Les R2, R3 (R2<R3) rem 000 R1,R2, Rem 0 = residuo Realiza la
e. Sum R5,R2,R3 ( R5= R2+R3) 1 etiqueta R1,R2, de 10/5 operación
R3 de division
f. Mul R6,R2,R3 (R6= R2*R3) beq 001 R1,R2, Beq R1==R2 Realiza la
g. Sw R1, 0 (R2) 0 etiqueta R1,R2, operación
h. Jump 0111 R3 igual que
les 001 R1,R2, Les R2<R3 Realiza la
1 etiqueta R2,R3 operación
4. Definición de la cantidad de registros que se usaran y menor que
el tamaño de cada registro: sum 010 R1,R2, Sum R5= R2+R3 Realiza la
Necesitaríamos una cantidad de 15 registros y su 0 etiqueta R5,R2, suma de los
R3 operandos
tamaño será de 8 bits. Utilizando registros de control mul 010 R1,R2, Mul R6= R2*R3 Realiza la
y de estado según nuestro parecer y la información 1 etiqueta R6,R2, multiplicaci
obtenida a nuestro criterio utilizaríamos las R3 ón de los
operandos
siguientes instrucciones:
sw 011 R, valor Sw R1,0 0 (R2) Guardar un
a. Contador de programa (PC) 0 (R2) valor en un
b. Registro de instrucción (IR) espacio
c. Registro de memoria (MAR) asignado
jump 011 Etiqueta Jump Saltar al Salta al
d. Registro intermedio de memoria (MBR) 1 0111 lugar lugar
indicado de
5. Descripción breve de los modos de direccionamiento manera
que sean posibles: independien
te
MODOS DE INSTRUCCIÓN JUSTIFICACION
DIRECCIONSMIENTO
DIRECTO A REGITRO Rem R1, R2, R3 ( 0 = DETERMINAMOS
residuo de 10/5, ESTE MODO POR QUE # Instrucción en HEX
suponiendo que R2 REALIZA UNA
vale 10, R3 vale 5) OPERACIÓN binario
ARITMETICA QUE 0 000000000000 1
DIRECTO A REGITRO Sum R5,R2,R3 ( R5= AFECTA 1 001000000001 2
R2+R3) DIRECTAMENTE AL
REGISTRO 2 002000000010 3
DIRECTO A REGITRO Mul R6,R2,R3 (R6= 3 003000000011 4
R2*R3) 4 004000000100 5
DIRECTO A REGITRO 5 005000000101 6
6 006000000110 7
DIRECTO A REGITRO 7 007000000111 8
8 010000001000 9
DE TRANSFERENCIA DE Sw R1, 0 (R2) DETERMINAMOS
DATOS ESTE MODO POR LA 9 011000001001 10
COMUNICACIÓN 10 012000001010 A
CON LA RAM 11 013000001011 B
PSEUDODIRECTO Jump # ( rotulado que DETERMINAMOS
indica el renglón ESTE MODO POR LOS 12 014000001100 C
donde se realizara el SALTOS EN EL 13 015000001101 D
salto del programa) CODIGO 14 016000001110 E
RESALTANDO EN LA
TIPOGRAFIA 15 017000001111 F
INDIRECTO A REGISTRO Sw R1, 0 (R2) DETERMINAMOS
ESTE MODO
PARA
INTERACTUAR CON
LA RAM
6. Traducción del programa del alto nivel según la 8. ALU en Logisim, que pueda ejecutar las
(entrega 1) al lenguaje ensamblador que han instrucciones
construido, usando su propio conjunto de requeridas por el programa:
instrucciones.
PROCESO DE DISEÑO ALU (UNIDAD ALGORITMICA)
4
9. CONCLUSIONES:
Es importante reconocer las funciones de la
Unidad Aritmética como sistema de
operaciones en un circuito y la relevancia
que tiene en un computador.
Importante conocer la ruta de diseño y
ensamblaje de una ALU, permite entender
el proceso lógico, para las operaciones
FASE # 2 IMPLEMENTACION DE OPERACIONES ARITMETICAS Fig. No.2 binarias de un circuito computacional.
La realización del trabajo nos permitió
definir el concepto de un leguaje de alto a
Fase 3 apariencia del circuito: nivel y el proceso de estandarización para
colocarlo en contexto en un nivel simple,
comprendiendo de forma detallada como
debe ser el paso a paso de una instrucción y
como tiene su injerencia directa sobre el
hardware.
Se pudo determinar y concluir que un
lenguaje de alto nivel, genera un código más
sencillo y programable y de forma
comprensiva, lo que permite ser válido para
diferentes máquinas y sistemas operativos.
REFERENCIAS
[1] https://www.ieee.org/
[2] http://www.cburch.com/logisim/docs/2.1.0-es/guide/index.html
[3] https://poli.instructure.com/courses/10656
[4] https://ebookcentral-proquest-
com.loginbiblio.poligran.edu.co/lib/bibliopoligransp/reader.action?
docID=5635431
[5] https://www.youtube.com/watch?v=dYZ-Hwbcnq4
[6] https://rua.ua.es/dspace/bitstream/10045/14769/1/Programaci%C3%B3n
%20a%20bajo%20nivel%20de%20un%20computador.pdf
[7] http://digitales1escom.blogspot.com/2012/11/
[8] https://www.youtube.com/watch?v=Xp7Spuj8XlI
[9] https://www.virtuniversidad.com/greenstone/collect/informatica/archives
/HASH0152.dir/doc.pdf
[10]