Arquitectura de Máquinas

7
Arquitectura de Máquinas II Sistemático 3 Integrantes: Durán, Enyel Guadamuz, Laoska Medrano, Raúl Paniagua, Yahosca Vallecillo, Cristhian 4T1 Grupo 2 4T1

description

Ejercicios Diseño del conjunto de instrucciones y ALU

Transcript of Arquitectura de Máquinas

Page 1: Arquitectura de Máquinas

Arquitectura de Máquinas II Sistemático 3

Integrantes:

Durán, Enyel

Guadamuz, Laoska

Medrano, Raúl

Paniagua, Yahosca

Vallecillo, Cristhian

4T1

Grupo 2

4T1

Page 2: Arquitectura de Máquinas

Guía Clase Práctica Nº 3

Diseño del Conjunto de Instrucciones

1. Se tiene que codificar un conjunto de instrucciones en un formato de 16 bits con campos de dirección

de 6 bits. En este conjunto se han considerado 15 instrucciones de 2 operandos, 63 de 1 operando y 4

sin operandos.

a. ¿Caben las instrucciones en formato de bloque fijo? No

b. ¿Caben en formato de bloque extendido? SI

c. ¿Cuántas más de 2 operandos pudieran caber? Ninguna

d. ¿Cuántas más de 1 operando pudieran caber? Ninguna

e. ¿Cuántas más de 0 operando pudieran caber? 60 instrucciones más

CO Operando 1 Operando 2

0000 xxxxxx xxxxxx

… … …

1110 xxxxxx xxxxxx

1111 000000 xxxxxx

… … …

1111 111110 xxxxxx

1111 111111 000000

… … …

1111 111111 000011

… … …

1111 111111 111111

2. Se tiene que codificar un conjunto de instrucciones en un formato de 16 bits con campos de dirección

de 4 bits. En este conjunto se han considerado 13 instrucciones de 3 operandos, 32 de 1 operando y 4

sin operando. ¿Cuántas de 1 operando caben si se emplea:?

a. Codificación de Bloque Fijo: No se puede.

b. Codificación Extendida: 255 Instrucciones de 1 operando.

CO Operando 1 Operando 2 Operando 3

0000 xxxx xxxx xxxx

… … …

1100 xxxx xxxx xxxx

1101 0000 xxxx xxxx

… … … …

1101 1111 xxxx xxxx

1110 0000 xxxx xxxx

… … … …

1110 1111 xxxx xxxx

1111 0000 0000 xxxx

… … … …

1111 1111 1110 xxxx

1111 1111 1111 0000

… … … …

1111 111111 111111 0011

15 instrucciones de 2 operandos

63 instrucciones de 1 operando

4 instrucciones de 0 operando

60 instrucciones adicionales

de 0 operando

13 instrucciones de 3 operandos

32 instrucciones de 2 operando

255 instrucciones adicionales

de 1 operando

4 instrucciones de 0 operando

Page 3: Arquitectura de Máquinas

3. Se tiene que codificar un conjunto de instrucciones, el cual consta de las operaciones cuyos

mnemónicos y frecuencias relativas se definen en la tabla mostrada a continuación. Determine:

a. Longitud del CO empleando técnica de bloque fijo

( )

b. Cada uno de los CO empleando codificación Huffman

mnemónicos CO L (CO) f

MOV 11 2 0.25

ADD 10 2 0.25

SUB 011 3 0.125

AND 010 3 0.125

JMP 0011 4 0.0625

INT 0010 4 0.0625

CALL 0001 4 0.0625

NOT 0000 4 0.0625

c. Calcule la longitud media del CO tanto para codificación de bloque fijo como la Huffman

( ) ∑

(

) (

) (

)

d. Determine la longitud óptima del CO:

( ) ∑ ( )

e. Determine el grado de desperdicio de bits o redundancia con cada sistema de codificación:

4. Suponga que tiene una máquina con un formato de 2 direcciones de 6 bits cada uno y el CO está en

bloque fijo de 4 bits. Su conjunto de instrucciones tiene 14 instrucciones y los modos se codifican

según la tabla. La máquina tiene 8 Registros enumerados de R0 a R7.

a. Asigne código a las instrucciones siguientes ADD, SUB, JNZ, MOV

ADD 0001

SUB 0010

JNZ 0100

MOV 1000

b. Codifique en binario las instrucciones siguientes:

Page 4: Arquitectura de Máquinas

ADD (R4)+, 1000H(R6)

0001 011|100 110|110

MOV (R3), (-(R7))

1000 001|011 101|111

JNZ R5

0100 000|101 000|000

MOV (R4)+, (1000H(R6))

1000 010|100 111|110

5. Llene la matriz de comparación de los modos de direccionamiento y arquitecturas poniendo palomilla

[√] o tacha [x] en dependencia si el modo aplica o no para esa arquitectura. Posteriormente, analice

cuál arquitectura soporta más modos y cual menos. Con base en los conocimientos adquiridos en clase,

justifique el porqué de sus hallazgos.

Acumulador Pila Registro 2 dir. Registro 3 dir.

Inmediato √ √ √ √

Registro X X √ √

Memoria √ √ √ √

Indirecto de Reg. X X √ X

Autoincremento X X √ X

Autodecremento X X √ X

Indice X x √ √

Relativo al PC √ √ √ √

6. Escriba trozos de código en ensamblador que realicen las tareas descritas en la lista a continuación,

tratando de aplicar lo más posible los modos de direccionamiento estudiados en clase:

a. Multiplicación de dos enteros por sumas sucesivas.

b. División de dos enteros por restas sucesivas.

c. Determinar si una cadena es palíndrome ; ciclo para checar si la palabra es palindroma

mov cl,n

mov si,0

;limpiando contenido de ax

xor ax,ax

;moviendo registro n a al

mov al,n

mov di,ax

rr:

dec di

mov al,p[si]

mov dl,p1[di]

inc si

cmp al,dl

jnz imp

loop rr

d. Invertir una cadena

0001 0000 0000 0000

0001 0000 0000 0000

Page 5: Arquitectura de Máquinas

;Inicio de la función

push ebp

mov ebp, esp

;Cargamos el puntero pasado como parámetro en eax

mov eax, [ebp+8]

;Introducimos el carácter de fin de cadena en la pila

push word 0

cadena_en_pila:

;Vamos a apilar cada carácter de la cadena

;Recuperación del carácter actual

mov bl, byte [eax]

;¿Es el fin de la cadena? (bl = 0 ?)

test bl, bl

;Si es sí pasamos a la etapa siguiente

jz fin_cadena_en_pila

;Si no apilamos el siguiente carácter

push bx

;Incrementamos el puntero en 1 para procesar el siguiente carácter

inc eax

;Pasamos al siguiente carácter

jmp cadena_en_pila

fin_cadena_en_pila:

;Volvemos a cargar el puntero de la cadena para desapilar uno a uno cada carácter

mov eax, [ebp + 8]

invertir:

;Desapilamos el carácter actual

pop bx

;Lo cargamos en el puntero de cadena

mov byte [eax], bl

;Incrementamos la dirección

inc eax

;¿Era el fin de la cadena? (¿el 0 que hemos apilado al inicio?)

test bl, bl

;No entonces continuamos

jnz invertir

;Es el fin de la cadena, indicamos el fin de la función

leave

ret

e. Dados dos arreglos A y B, los sume y guarde el resultado en uno de ellos

f. Genere los primeros n valores de la serie Fibonacci MOV AX,00

MOV BX,01

MOV CX,10 ;para el numero de veces

MOV DX,00

CICLO:

ADD AX,BX; en AX se guarda el numero

MOV BX,DX

MOV DX,AX

LOOP CICLO

7. La serie de instrucciones descritas abajo, corresponden a una rutina. Esta rutina accede a variables de

memoria cuya dirección se muestran en la tabla de símbolos. Al momento de su llamado, la memoria

y los registros tenían el estado mostrado. Ejecute la rutina a mano y muestre en cada paso los

cambios de los valores en memoria y los registros. Explique que hace la rutina.

:Rutina

Tabla de Símbolos

A 2010H

B 2020H

Page 6: Arquitectura de Máquinas

1000H LEA R3, A

1004H LEA R4, B

1008H MOVE R1, D

100CH MOVE R2, 0

:LOOP

100FH MOVE R5, (R3)+

1011H ADD (R4)+, R5

1015H MOVE 2030H(R2), R5

1017H INC R2

1019H DEC R1

101BH JNZ LOOP

101DH RETURN

Memoria

0 1 2 3 4

2010 1 2 3

2020 10 20 30

2030 11 22 33

2040 3

2050

Registros

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

R0

R1 3 2 1 0

R2 0 1 2 3

R3 2011 2012 2013

R4 2010H 2021 2022 2023

R5 2020H 1 11 2 22 3 33

[Suma A + B y los resultados se guardan en C]

Guía Clase Práctica Nº 4

Unidad de Ejecución

1. Represente en números enteros de 4 bits en las 4 técnicas estudiadas los siguientes

Número Signo Magnitud C-1 C-2 Exc. A M

0 0000 1000

0000 0000 1000

1 0001 0001 0001 1001

-1 1001 1110 1111 0111

2 0010 0010 0010 1010

-2 1010 1101 1110 0110

5 0101 0101 0101 1101

-5 1101 1010 1011 0011

C 2030H

D 2040H

Page 7: Arquitectura de Máquinas

6 0110 0110 0110 1110

-6 1110 1001 1010 0010

2. Diseñe una ALU que realice las siguientes operaciones aritméticas: Suma, Resta, y lógicas: AND y

OR. Las operaciones aritméticas diséñelas basadas en un CLA. Para implementar la resta emplee

negadores para el sustraendo y la línea de selección de resta en 1 páselo al Cin. Escriba la tabla de

funciones de la ALU resultante

S1 S0 Z

0 0 +

0 1 -

1 0 AND

1 1 OR