Documentos de Académico
Documentos de Profesional
Documentos de Cultura
DOCENTE:
Francisco Gonzales
MÓDULO:
Arquitectura del computador
Politécnico Grancolombiano
Facultad de Ingeniería
INTRODUCCIÓN
OBJETIVOS ESPECÍFICOS
VARIABLES
num: Esta variable es utilizada para almacenar el número ingresado por el usuario
count: La variable “count” se utiliza como contador de cantidad de módulos resultantes
iguales a cero. Por medio de esta variable se hace una comprobación cada vez que se
itera el condicional mientras, esta comprobación es si contador es mayor que 2, ya que si
antes de llegar al final del conteo se identifican dos módulos iguales a cero, quiere decir
que como mínimo serán tres sumando el del mismo número. Al saber eso podemos
romper el bucle mientras y ahorrarnos el resto de iteraciones innecesarias.
i: La variable “i” sirve como operador divisor para el número a determinar si es primo, esta
variable crece en una unidad con cada iteración.
INSTRUCCIONES MIPS NECESARIAS
Las instrucciones que vamos a necesitar para desarrollar este algoritmo en lenguaje de
máquina son:
add: la instrucción “add” se utilizará para realizar la suma de cada iteración en las
variables “i” y “count”.
div: esta instrucción se usará indirectamente para hallar el módulo de la división; al
ejecutar esta instrucción, el módulo de dicha división se almacenará en el registro
especial “hi”.
mfhi: move from hi register es la función de esta instrucción, la cual utilizaremos para
mover el dato del registro “hi” a un registro general y poder operar con él.
move: con esta instrucción moveremos registros entre ellos según sea el caso. Ejemplo
para mover “num” a “i” cuando lleguemos a la cantidad de más de dos módulos.
beq: Branch on equal, se usará para saber si un módulo es igual a cero y saltar a la
instrucción correspondiente.
bne: Branch no equal, si el módulo no es igual a cero, se saltará a la instrucción
correspondiente.
bgt, blt: Se usarán para preguntar si “i” menor que “num” y “count” mayor que dos,
respectivamente y saltar a la instrucción siguiente según sea el caso.
print_int: Con esta instrucción imprimiremos el número entero en cuestión.
print_string: Imprimiremos dos direcciones con cadenas de texto en memoria, si es
primo o no.
MODOS DE DIRECCIONAMIENTO
Los modos de direccionamiento que vamos a utilizar son:
Direccionamiento directo a registro: El resultado de una operación se almacena
directamente en un registro. Ej: add $1,$2,$3
Direccionamiento relativo a PC con desplazamiento: Al cumplirse una condición
evaluada, salta a una dirección indicada en la etiqueta “label”. Ej: beq $1, $2, label
Direccionamiento inmediato: Agrega una constante en la operación. Ej: addi $1,$2, 2
BINARIO HEXA
00100100000000100000000000000100 24020004
00111100000000010001000000000001 3c011001
00110100001001000000000000000000 34240000
00000000000000000000000000001100 0000000c
00100100000000100000000000000101 24020005
00000000000000000000000000001100 0000000c
00000000000000100100000000100001 00024021
00100100000010010000000000000010 24090002
00010001000010010000000000010001 11090011
00000001000010010000000000011010 0109001a
00000000000000000101000000010000 00005010
00010001010000000000000000000010 11400002
00100001001010010000000000000001 21290001
00000100000000011111111111111010 0401fffa
00100100000000100000000000000100 24020004
00111100000000010001000000000001 3c011001
00110100001001000000000000110001 34240031
00000000000000000000000000001100 0000000c
00100100000000100000000000000001 24020001
00000000000010000010000000100001 00082021
00000000000000000000000000001100 0000000c
00100100000000100000000000000100 24020004
00111100000000010001000000000001 3c011001
00110100001001000000000001001000 34240048
00000000000000000000000000001100 0000000c
00000100000000010000000000001100 0401000c
00100100000000100000000000000100 24020004
00111100000000010001000000000001 3c011001
00110100001001000000000000110001 34240031
00000000000000000000000000001100 0000000c
00100100000000100000000000000001 24020001
00000000000010000010000000100001 00082021
00000000000000000000000000001100 0000000c
00100100000000100000000000000100 24020004
00111100000000010001000000000001 3c011001
00110100001001000000000000111110 3424003e
00000000000000000000000000001100 0000000c
00000100000000010000000000000000 04010000
00100100000000100000000000001010 2402000a
00000000000000000000000000001100 0000000c
01101001010001000010000000001010 6944200a
01100101011101000110100101100111 65746967
00100000011011100111010100100000 206e7520
01100101011011011111101001101110 656dfa6e
01110000001000000110111101110010 70206f72
00100000011000010111001001100001 20617261
01100101011000100110000101110011 65626173
01101001011100110010000001110010 69732072
00100000011100110110010100100000 20736520
01101101011010010111001001110000 6d697270
00100000011011110010000001101111 206f206f
00100000001110100110111101101110 203a6f6e
01000101001000000000101000000000 45200a00
11111010011011100010000001101100 fa6e206c
01101111011100100110010101101101 6f72656d
01100101001000000000000000100000 65200020
01110010011100000010000001110011 72702073
00000000011011110110110101101001 006f6d69
00100000011011110110111000100000 206f6e20
01110000001000000111001101100101 70207365
01101111011011010110100101110010 6f6d6972