capÍtulo 2 (ii - parte)

10
CAPÍTULO 2 (II - Parte) Instrucciones: FORMATO DE INSTRUCCIONES

Upload: vicky

Post on 11-Jan-2016

32 views

Category:

Documents


0 download

DESCRIPTION

CAPÍTULO 2 (II - Parte). Instrucciones: FORMATO DE INSTRUCCIONES. Modos de direccionamiento MIPS. Direccionamiento por registro – el operando se encuentra almacenado en un registro - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: CAPÍTULO 2  (II - Parte)

CAPÍTULO 2 (II - Parte)

Instrucciones: FORMATO DE INSTRUCCIONES

Page 2: CAPÍTULO 2  (II - Parte)

— 2Ing. José Alberto Díaz García

Modos de direccionamiento MIPS Direccionamiento por registro – el operando se encuentra

almacenado en un registro Direccionamiento Base (desplazamiento) – el operando se

encuentra almacenado en una posición de memoria cuya dirección es la suma del contenido de un registro y una constante de 16 bits, contenida en la misma instrucción.

Direccionamiento inmediato – el operando es una constante de 16 bits contenida en la misma instrucción.

Direccionamiento relativo al PC – la dirección de la instrucción es la suma del contenido del PC y una constante de 16 bits contenida en la misma instrucción.

Direccionamiento pseudo directo – la dirección de la instrucción se forma con los 26 bits contenidos en la instrucción concatenados con los cuatro bits más significativos del PC.

Page 3: CAPÍTULO 2  (II - Parte)

— 3Ing. José Alberto Díaz García

Ilustración de los modos de direccionamiento1. Direcc por registro

op rs rt rd funct RegistroPalabra Operando

op rs rt offset2. Direcc base

Registro base

MemoriaOperando word o byte

3. Direcc. base

op rs rt operando

4. Direcc relativo PCop rs rt offset

Contador de programa (PC)

MemoriaDestino de la instrucción de salto

5. Direcc. Pseudo directo

op dirección de salto

Contador de Programa (PC)

Memoria

Destino de la instruc. de salto||

Concatenado

Page 4: CAPÍTULO 2  (II - Parte)

— 4Ing. José Alberto Díaz García

Campos en las instrucciones MIPS

op rs rt rd shamt funct

op rs rt rd shamt funct6 bits 5 bits 5 bits 5

bits5 bits

6 bits

= 32 bits

Código de la operación que se realizará

Dirección del registro del primer operando fuente

Dirección del registro del segundo operando fuente

Dirección del registro destino

shift amount, para las instrucciones de desplazamiento (cantidad de desplazamientos)

Código de function que selecciona las variantes específicas de la operación indicada en el campo de código de operación

Page 5: CAPÍTULO 2  (II - Parte)

— 5Ing. José Alberto Díaz García

Instrucciones aritméticas MIPS Instrucciones aritméticas MIPS

add $t0, $s1, $s2

sub $t0, $s1, $s2 Cada instrucción aritmética realiza una operación

Cada una especifica tres operandos almacenados en registros de la ruta de datos ($t0,$s1,$s2)

destino fuente1 op fuente2

Formato de la instrucción (Formato R)0 17 18 8 0 0x20

Page 6: CAPÍTULO 2  (II - Parte)

— 6Ing. José Alberto Díaz García

Formato de la instrucción Load/Store I (Formato I):

lw $t0, 24($s3)

Instrucción de cargue

35 19 8 2410

Memoria

datos word address (hex)0x000000000x000000040x000000080x0000000C

0xFFFFFFFF

$s3 0x12004094

2410 + $s3 =

. . . 0001 1000 (24)D+ . . . 1001 0100 . . . 1010 1100 = 0x120040AC

0x120040AC $t0

Page 7: CAPÍTULO 2  (II - Parte)

— 7Ing. José Alberto Díaz García

Considere la instrucción de cargue una palabra o almacene una palabra ¿Qué significa aquí el principio de regularidad?

Pero . . . Un buen diseño demanda buenos compromisos Se introduce un nuevo tipo de formato de

instrucción Tipo I para instrucciones de transferencia de datos)

Ejemplo: lw $t0, 24($s2)

Instrucción de cargue

op rs rt 16 numero de bits

23hex 18 8 24

100011 10010 01000 0000000000011000

¿Donde se presenta el compromiso?

Page 8: CAPÍTULO 2  (II - Parte)

— 8Ing. José Alberto Díaz García

Ejemplo: sw $t0, 24($s2)

Un offset de 16 bits significa: acceso a las posiciones de memoria en el rango de +213-1 a -213 (~8,192) palabras o (+215-1 a -215 (~32,768) bytes) de las direcciones en el registro base $s2 Complemento a 2 (1 bit de signo + 15 bits de

magnitud)

Instrucción para almacenar

op rs rt 16 bit number

43 18 8 24

101011 10010 01000 0000000000011000

Page 9: CAPÍTULO 2  (II - Parte)

— 9Ing. José Alberto Díaz García

¿Que tipo de formato utiliza la instrucción addi?

addi$s3, $s3, 4 #$s3 = $s3 + 4

Formato máquina:

Instrucciones inmediatas

op rs rt 16 bits inmediatos Formato I

8 19 19 4

La constante se mantiene dentro de la misma instrucción! Los valores límites inmediatos se encuentran en el rango

+215–1 a -215

Page 10: CAPÍTULO 2  (II - Parte)

— 10Ing. José Alberto Díaz García

Código ensamblador Para el código en C

A[8] = A[2] – b Las instrucciones en código MIPS eslw $t0, 8($s3) #cargue A[2] en $t0sub $t0, $t0, $s2 #substraiga b de A[2]sw $t0, 32($s3) #almacene el resultado en

A[8]

35lw 19 8 8

43sw 19 8 32

0sub 8 18 8 0 34