2.6 Formato de instrucciones

download 2.6 Formato de instrucciones

of 14

Transcript of 2.6 Formato de instrucciones

  • 8/8/2019 2.6 Formato de instrucciones

    1/14

    1

    2.5. Formato de las instruccionesRepresentacin binaria de las instrucciones en el computador.

    La secuencia de bits se divide en campos que especifican la operacin

    y los operandos.Representacin sencilla:

    Representacin ms compleja:

    2

    Tamao de las instrucciones: aspecto bsico del diseo del formato.

    Compromiso entre:

    - Repertorio de instrucciones potente (ms operaciones, msoperandos, ms modos de direccionamiento y mayor rango de

    direcciones (ms registros)): ms bits para codificar.

    - Programas cortos: instrucciones cortas y de longitud fija.

    - Sencillez del hardware de captacin y decodificacin de lasinstrucciones: tamao de las instrucciones fijo e igual al tamao de lapalabra de la mquina.

    Los direccionamientos implcito e indirecto, permiten acortar el tamaode la instruccin.

  • 8/8/2019 2.6 Formato de instrucciones

    2/14

    3

    Codificacin de los modos de direccionamiento

    Segn el nmero de modos de direccionamiento que tenga unaarquitectura:

    4

    Caractersticas de los formatos de instruccin que deben tener lasarquitecturas:

    - Cada computador tiene unos pocos formatos: cada instruccin seajusta a uno de ellos. Cuantos menos ms sencilla la unidad de

    control.

    - Son sistemticos: campos del mismo tipo tienen la misma longitud yocupan el mismo sitio dentro de la instruccin (cdigo de operacinel primero). Simplifica la decodificacin de la instruccin.

  • 8/8/2019 2.6 Formato de instrucciones

    3/14

    5

    Ejemplos de formatos de instrucciones

    IBM 360

    16 registros de tipo general: 0 15

    Palabra de 32 bits

    Modos de direccionamiento del computador:- inmediato (8 bits)- registro: Ri (4 bits)- almacenamiento (base + desplazamiento): Bi (registro base), Di

    (desplazamiento de 12 bits)- indexado: Xi (registro ndice), Bi (registro base), Di (desplazamiento)

    Tiene 5 formatos de instruccin, segn los modos de direccionamiento.

    2 o 3 operandos explcitos, cada uno mediante un modo dedireccionamiento determinado.

    6

  • 8/8/2019 2.6 Formato de instrucciones

    4/14

    7

    Veamos ejemplos de instrucciones (RR, RS y SI) del IBM 360:

    Especificacin de las instrucciones:

    Descripcin Cdigomnemnico Cdigooperacin Formatoinstrucc. Especificacin delos operandosSumanormalizadalarga

    ADR 2A RR R1, R2

    Salta sindice alto

    BXH 86 RS R1, R3, D2(B2)

    Movimiento

    inmediato

    MVI 92 SI D1(B1), inmediato

    ADR 3, 4 equivale a 0x2A34BXH 5, 8, X6B8(7) equivale a 0x865876B8MVI XA49(6), X3F equivale a 0x923F6A49

    8

    El VAX

    Formato de instruccin muy flexible: cdigo de operacin de 8 bits,seguido de un mximo de cinco especificadores de operando:

  • 8/8/2019 2.6 Formato de instrucciones

    5/14

    9

    Cada especificador de operando se compone de dos o tres partes:

    1. Cdigo del modo de direccionamiento (4 bits):

    - 5: registro

    - 0xC: base + desplazamiento (de 16 bits)- 0xA: base + desplazamiento (de 8 bits)- Para especificar un operando inmediato los 2 bits ms significativos

    son 00 y los 6 bits restantes (2 + 4 del campo registro) se utilizanpara codificar el valor del operando.

    2. Especificacin de registro (4 bits).

    3. Especifica opcionalmente un desplazamiento en eldireccionamiento base + desplazamiento (8, 16 32 bits).

    Veamos algunos ejemplos de instrucciones del VAX:

    10

  • 8/8/2019 2.6 Formato de instrucciones

    6/14

    11

    Ejemplos:

    Dar la instruccin mquina equivalente a:

    CLRL R13 equivale a 0xD45D

    MOVW 362(R3), 67(R12) equivale a 0xB0C36A01AC43

    ADDL3 #58, R1, 55(R11) equivale a 0xC13A51AC37

    12

    Formatos de instruccin de la MIPS (3 de 32 bits)

  • 8/8/2019 2.6 Formato de instrucciones

    7/14

    13

    14

    1. Tipo R (Registro)

    - opcode: cdigo de operacin primario, cuyo valor es cero.- rs: especificador de registro fuente.- rt: especificador de registro objetivo (fuente/destino).- rd: especificador de registro destino.- sa: cantidad de desplazamiento.- function: campo funcin, especifica la operacin.

    Utilizado para instrucciones aritmticas y lgicas:

  • 8/8/2019 2.6 Formato de instrucciones

    8/14

    15

    (1.1) Tres operandos en registros

    ADD rd, rs, rt (rd rs + rt)

    SUB rd, rs, rt (rd rs - rt)

    16

    Ejemplos

    Modo de direccionamiento registro:

  • 8/8/2019 2.6 Formato de instrucciones

    9/14

    17

    (1.2) Dos operandos en registros

    SLL rd, rt, sa (rd rt

  • 8/8/2019 2.6 Formato de instrucciones

    10/14

    19

    2. Tipo I (Inmediato)

    - opcode: especifica la operacin.

    Para instrucciones:(2.1) de transferencia de datos (carga/almacenamiento):

    - rs: registro base.- rt: registro fuente/destino.- offset: desplazamiento.

    (2.2) de salto condicional:- rs y rt: para establecer la condicin.- offset: desplazamiento.

    (2.3) instrucciones con operandos inmediatos:- rs: operando fuente.- rt: operando destino.- offset (inmediate): operando fuente.

    20

    (2.1) Instrucciones de carga/almacenamiento

    LW rt, offset(base) (rt memory[base+offset])

    SW rt, offset(base) (memory[base+offset] rt)

  • 8/8/2019 2.6 Formato de instrucciones

    11/14

    21

    Ejemplos

    22

    Existen instrucciones distintas para los diferentes tamaos de dato(i) Load Byte

    (ii) Load Half Word

    (iii) Load Word

    En todos los casos, el direccionamiento para el segundo operando esbase (registro rt) + desplazamiento (offset)

  • 8/8/2019 2.6 Formato de instrucciones

    12/14

    23

    (2.2) Instrucciones de salto condicional (bifurcacin)

    BEQ rs, rt, offset (if (rs = rt) then branch)

    Operacin: tgt_offset sign_extend(offset || 02)condition (GPR[rs] = GPR[rt])if (condition) then PC PC + tgt_offset endif

    An 18-bit signed offset (the 16-bit offsetfield shifted left 2 bits) is addedto the address of the instruction following the branch (not the branchitself), to form a PC-relative effective target address.

    24

    Ejemplos

    beq $19, $20, 6205

    bne $19, $20, 6205

    Estas instrucciones saltaran a la instruccin que est 6206instrucciones ms adelante en memoria.

  • 8/8/2019 2.6 Formato de instrucciones

    13/14

    25

    El modo de direccionamiento es relativo al contador de programa.

    En este modo, se especifica el desplazamiento (en nmero deinstrucciones), con respecto al PC, donde est la instruccin destino delsalto: direccin destino = PC + desplazamiento * 4.

    Las instrucciones de bifurcacin pueden saltar 215-1 instrucciones haciadelante y 215 hacia atrs.

    En el ejemplo, si la instruccin beq $19, $20, 6205 est en la direccin5300, la direccin de la instruccin destino del salto sera:PC + (6205 * 4) = 5304 + 24820 = 30124

    26

    (2.3) Instrucciones con un operando inmediatoPara operaciones con constantes

    ADDI rt, rs, immediate (rt rs + immediate)Ejemplo

    Modo de direccionamiento inmediato.

  • 8/8/2019 2.6 Formato de instrucciones

    14/14

    27

    3. Tipo J (Salto)

    Operacin: PC PC32..28 || instr_index || 02

    Modo de direccionamiento pseudodirecto: la direccin de salto son los26 bits menos significativos de la instruccin, desplazados 2 posicionesa la izquierda y concatenados con los 4 bits ms significativos del PC.