Está en la página 1de 7

ARQUITECTURA DEL COMPUTADOR

DISEÑO DE CONJUNTO DE INTRUCCIONES Y MICROARQUITECTURA

PROFESOR:
ALEXANDRA MARIA SILVA MONSALVE

INTEGRANTES DEL GRUPO:


RODRÍGUEZ VELASCO MAURICIO 1821025387

INSTITUCIÓN UNIVERSITARIA POLITÉCNICO GRANCOLOMBIANO


FACULTAD DE INGENIERÍA, DISEÑO E INNOVACIÓN
INGENIERÍA DE SOFTWARE
I. DEFINICIÓN DE LA CANTIDAD DE REGISTROS QUE
SE USARÁN Y EL TAMAÑO DE CADA REGISTRO
II. DESCRIPCIÓN BREVE DE LOS MODOS
DE DIRECCIONAMIENTO QUE SERÁN
POSIBLES.
Los registros de memoria son una pequeña cantidad de
memoria muy rápida en donde almacena y accedes a Es el conjunto de reglas que especifican una
datos de mayor frecuencia lo que permite incrementar la localización (posición) del dato usado durante la
velocidad de un programa en ejecución ejecución de una instrucción.
La mayoría de las arquitecturas de computadora El microprocesador desempeña una función con
emplean registros, moviendo datos desde la memoria facilidad debido a que usa un modo de
principal hacia los registros, se opera sobre éstos, y el direccionamiento el cual especifica la forma en que
resultado es movido nuevamente a la memoria principal. se interpreta la información.

 Directo a registro
Registro descripción
X Registro acumulador, El registro definido por la instrucción que
usándolo se produce una contiene el operando.
instrucción que ocupa un byte
menos que si se utilizaran Código de Registro de
otros registros de uso general. operación Procesos
SP Registro de uso general, debe
utilizarse solo como puntero de
pila, la cual sirve para
almacenar las direcciones de
procesador
retorno subrutinas y datos
temporarios.
BX Registro base de propósito similar
(se usa para direccionamiento
indirecto)  Inmediato Ejecución
CX Registro contador, se utiliza
como Se proporciona en el byte o bytes el operando que
contador en bucle, en operaciones siguen el código de operación de la instrucción.
con cadenas
DX Registro de datos, se utiliza junto
Código de Ejecución
con el registro AX en
multiplicaciones y divisiones en la operación
instrucción CWD (el registro DX
indica el número de puerto
de entrada/salida)
BP Puntero base, generalmente se  Directo
utiliza para realizar
El byte o par de bytes que siguen al código
direccionamiento indirecto
OP de la instrucción da el desplazamiento
dentro de la pila
de 8 ó 16 bits, que, sumado al contenido del
DI Puntero destino (no se puede registro DS, determina la dirección efectiva
subdividir) en la que se encuentra el dato a transferir.
SI Puntero índice, sirve como
puntero fuente para las
Código deoperaciones con cadenas,Dirección
III. TRADUCCIÓN DEL PROGRAMA DE ALTO NIVEL (ENTREGA
Operación de memoria 1) AL LENGUAJE ENSAMBLADOR QUE HAN
también sirve para realizar
direccionamiento indirecto CONSTRUIDO, USANDO SU PROPIO CONJUNTO DE
INSTRUCCIONES

file "primo.c"
Memoria
.intel_syntax noprefix
.text
.def main; .scl 2; .type 32; .endef
.section .rdata,"dr" LC0:
Ejecución .ascii "\12Numero.....: \0" LC1:
.ascii " %d\0" LC2:
.ascii "\12El numero %d es primo\0" LC3: je L2
.ascii "\12El numero %d no es primo\0"
mov eax, DWORD PTR [esp+20]
.text
test eax, eax
.globl _main jle L2
.def _main; .scl 2; .type 32; .endef
mov DWORD PTR [esp+24], 0
_main:
mov DWORD PTR [esp+28], 2
LFB17:
jmp L3
.cfi_startproc push
ebp
.cfi_def_cfa_offset 8
.cfi_offset 5, -8 mov
ebp, esp
.cfi_def_cfa_register 5
and esp, -16
sub esp, 32
call main
mov DWORD PTR [esp+20], 0
mov DWORD PTR [esp+28], 0
mov DWORD PTR [esp+24], 0
L8:
mov DWORD PTR [esp], OFFSET FLAT:LC0
call _printf
lea eax, [esp+20]
mov DWORD PTR [esp+4], eax
mov DWORD PTR [esp], OFFSET FLAT:LC1
call _scanf
mov eax, DWORD PTR [esp+20]
cmp eax, -1

L6:
mov eax, DWORD PTR [esp+20]
cdq
idiv DWORD PTR [esp+28]
mov eax, edx
test eax, eax
jne L4 0 leave
mov DWORD PTR [esp+24], .cfi_restore 5
1 L4: .cfi_def_cfa 4, 4 ret
add DWORD PTR [esp+28], .cfi_endproc
1 L3: LFE17:
mov eax, DWORD PTR .ident "GCC: (MinGW.org GCC-8.2.0- 3) 8.2.0"
[esp+20] cmp DWORD PTR .def _printf; .scl 2; .type 32; .endef
[esp+28], eax jge L5 .def _scanf; .scl 2; .type 32; .endef
cmp DWORD PTR [esp+24], 1 BINARIO HEXADECIMAL
jne 10110100 B4
L6
1 1
L5:
cmp DWORD PTR [esp+24], 0 11001101 CD
jne L7 00100001 21
mov eax, DWORD PTR 10001010 8A
[esp+20] mov DWORD PTR 11111000 F8
[esp+4], eax 11011000 D8
mov DWORD PTR [esp], OFFSET FLAT:LC2 0010 2
call _printf 11011111 DF
jmp L2 01110101 75
L7:
0011 3
mov eax, DWORD PTR
[esp+20] mov DWORD PTR 11101001 E9
[esp+4], eax 11100011 E3
mov DWORD PTR [esp], OFFSET FLAT:LC3 0 0
call _printf L2: 10111011 BB
mov eax, DWORD PTR 10111000 B8
[esp+20] cmp eax, -1 0110 6
jne L8 10110111 B7
mov eax, 0111 7
10111010 BA
10111001 B9
01001111 4F
00011000 18
01010111 57
00010000 10
10110110 B6
10111010 BA
0101 5
11101000 E8
11111101 FD
01111100 7C
11000111 C7
11111001 F9
00111001 39
01111111 7F
11000010 C2
10000000 80
11111011 FB
10011100 9C
01110100 74
1000 8
10011101 9D
10001000 88
IV. LISTADO EN HEXA DEL BINARIO QUE REPRESENTA
EL PROGRAMA REALIZADO EN EL PUNTO 4 DE ESTA
ENTREGA.
01010101 55 Resta 1 1
1110 0E División 10 2
01010110 56
00110000 30
10110000 B0
1010 0A
10001001 89
10110101 B5
01110100 74
00011110 1E
00111011 3B
11101011 EB
11101010 EA
11110111 F7
11110011 F3
01110100 74

V. ALU EN LOGISIM, QUE


PUEDA EJECUTAR LAS
INSTRUCCIONES REQUERIDAS
POR EL PROGRAMA.

Son dos entradas de datos de 4 bits que


son los números para operar, los cuales
aparecen como valor 1 y valor 2 y el
resultado es de 5 Bits una salida de 1 bit
para la referencia del residuo.

La entrada de 3 bits la cual se llama código


de operación es la encargada de manejar
las 3 operaciones básicas (suma, resta y
división) parametrizadas de acuerdo con la
siguiente tabla:

Operación Código Decimal


operación
Suma 0 0

También podría gustarte