18
Arquitectura de Computadores Clase 12 Instrucciones en lenguaje de máquina IIC 2342 Semestre 2008-2 Rubén Mitnik Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación

Arquitectura de Computadores-clase12

Embed Size (px)

DESCRIPTION

DSADFSFSFSFSFSFSFSFSAFSAF

Citation preview

  • Arquitectura de ComputadoresClase 12Instrucciones en lenguaje de mquinaIIC 2342Semestre 2008-2

    Rubn MitnikPontificia Universidad Catlica de ChileEscuela de IngenieraDepartamento de Ciencia de la Computacin

  • ObjetivosCaptulo 4 : Unidad de Procesamiento Central (CPU)

    Entender cmo se le indican los mdos de direccionamiento requeridos a la CPU en base a las instrucciones de mquina.

    Entender cmo se construye una instruccin en lenguaje de mquina.

    ObjetivosR.Mitnik *Arquitectura de Computadores

    Arquitectura de Computadores

  • R.Mitnik

    Arquitectura de Computadores*ndiceCaptulo 4 : Unidad de Procesamiento Central (CPU)4.1 Partes de la CPU.4.2 Conjunto de Instrucciones y tipos de funcionalidad.4.3 Ciclo de la Instruccin.4.4 Diseo de una CPU bsica.4.5 Modos de direccionamiento.4.6 Instrucciones en lenguaje de mquina.4.7 Subrutinas y Manejo de Stack.4.8 Interrupciones de software y hadware.4.9 CISC/RISC.

    Arquitectura de Computadores

  • Instrucciones especificas para distintos direccionamientosEj. PIC16F87XA

    Embebido en la instruccin.Ej : Motorola 68000R.Mitnik

    Arquitectura de Computadores*Cmo se especifica el direccionamiento?R.Mitnik *Arquitectura de ComputadoresCaptulo 4 : Unidad de Procesamiento Central (CPU)Instrucciones en lenguaje de mquinaInmediatoDirecto

  • R.Mitnik

    Arquitectura de Computadores*Instrucciones en lenguaje de mquinaCaptulo 4 : Unidad de Procesamiento Central (CPU)Tamao del OpcodeExiste mquinas que utilizan distintos tamaos de OpCode para distintas instrucciones

    Arquitectura de Computadores

  • R.Mitnik

    Arquitectura de Computadores*Instrucciones en lenguaje de mquinaCaptulo 4 : Unidad de Procesamiento Central (CPU)Instrucciones en lenguaje de mquinaEj:ADD.L (A1)+, D2

  • R.Mitnik

    Arquitectura de Computadores*Instrucciones en lenguaje de mquinaCaptulo 4 : Unidad de Procesamiento Central (CPU)Instrucciones en lenguaje de mquinaEj:ADD.L (A1)+, D2Register = 010 (D 2)Opmode = 010 (Long; dest = Dn)Mode = 011 ( = (An)+ ) reg = 001 (A 1)

  • R.Mitnik

    Arquitectura de Computadores*Instrucciones en lenguaje de mquinaCaptulo 4 : Unidad de Procesamiento Central (CPU)Instrucciones en lenguaje de mquinaEj:ADD.L (A1)+, D2 1101 010 010 011 001Register = 010 (D 2)Opmode = 010 (Long; dest = Dn)Mode = 011 ( = (An)+ ) reg = 001 (A 1)

  • R.Mitnik

    Arquitectura de Computadores*Instrucciones en lenguaje de mquinaCaptulo 4 : Unidad de Procesamiento Central (CPU)Instrucciones en lenguaje de mquinaEj:ADD.L (A1)+, D2 1101 010 010 011 001

    ADD.W D0, (A4)

  • R.Mitnik

    Arquitectura de Computadores*Instrucciones en lenguaje de mquinaCaptulo 4 : Unidad de Procesamiento Central (CPU)Instrucciones en lenguaje de mquinaEj:ADD.W D0, (A4) 1101 000 101 010 100Register = 000 (D 0)Opmode = 101 (Word; dest = )Mode = 010 ( = (An) ) reg = 100 (A 4)

  • R.Mitnik

    Arquitectura de Computadores*Instrucciones en lenguaje de mquinaCaptulo 4 : Unidad de Procesamiento Central (CPU)Instrucciones en lenguaje de mquinaEj:ADD.L (A1)+, D2 1101 010 010 011 001

    ADD.W D0, (A4) 1101 000 101 010 100

  • R.Mitnik

    Arquitectura de Computadores*Instrucciones en lenguaje de mquinaCaptulo 4 : Unidad de Procesamiento Central (CPU)Instrucciones en lenguaje de mquinaEj:ADD.L (A1)+, D2 1101 010 010 011 001

    ADD.W D0, (A4) 1101 000 101 010 100

    ADD.B #5A, D3

  • R.Mitnik

    Arquitectura de Computadores*Instrucciones en lenguaje de mquinaCaptulo 4 : Unidad de Procesamiento Central (CPU)Instrucciones en lenguaje de mquinaEj:ADD.B #5A, D3 1101 011 000 111 100Register = 011 (D 3)Opmode = 000 (Byte; dest = Dn)Mode = 111 ( = literal ) reg = 100 ( = literal )En siguiente palabra: 5A xxxx xxxx 0101 1010

  • R.Mitnik

    Arquitectura de Computadores*Instrucciones en lenguaje de mquinaCaptulo 4 : Unidad de Procesamiento Central (CPU)Instrucciones en lenguaje de mquinaEj:ADD.L (A1)+, D2 1101 010 010 011 001

    ADD.W D0, (A4) 1101 000 101 010 100

    ADD.B #5A, D3 1101 011 000 111 100

  • R.Mitnik

    Arquitectura de Computadores*Instrucciones en lenguaje de mquinaCaptulo 4 : Unidad de Procesamiento Central (CPU)Instrucciones en lenguaje de mquinaEj:ADD.L (A1)+, D2 1101 010 010 011 001

    ADD.W D0, (A4) 1101 000 101 010 100

    ADD.B #5A, D3 1101 011 000 111 100 xxxx xxxx 0101 1010

  • R.Mitnik

    Arquitectura de Computadores*Instrucciones en lenguaje de mquinaCaptulo 4 : Unidad de Procesamiento Central (CPU)Palabras de una InstruccinPara determinar una instruccin se puede necesitar ms de una palabra.

    ADD.L (7F421A03).L, D71101 111 010 111 0017F421A03 3 palabras: 6 bytes

    MOVE #50FA0172, (7F421A03).L Instruccin50FA01727f421A03 5 palabras: 10 bytes

  • R.Mitnik

    Arquitectura de Computadores*Instrucciones en lenguaje de mquinaCaptulo 4 : Unidad de Procesamiento Central (CPU)Modos de direccionamientoNo todos los modos estn permitidos en todas las instrucciones.Source y Dest pueden permitir distintos modos de direccionamiento.

    ADD.x A3, D2source si puede ser un registro de direccin es vlido

    ADD.x D2, A3dest no puede ser un registro de direccin hay que usar ADDA

  • ResumenCaptulo 4 : Unidad de Procesamiento Central (CPU) Formas de indicar el modo de direccionamientoIntrnseco a la instruccinPor parmetros

    Instrucciones en lenguaje de mquina:Tamao del opcodeTamao de la instruccinParmetrosConstruccinR.Mitnik *Arquitectura de ComputadoresResumen

    Arquitectura de Computadores

    **Nota : ir a manual del motorola, instruccin ADD a partir de pg 107 del manual.Ejemplos en pizarrn:ADD.L (A1)+, D2 1101 010 010 011 001ADD.W D0, (A4) 1101 000 101 010 100ADD.B #5A, D3 1101 011 000 111 100En la siguiente palabra: XX5A = xxxx xxxx 0101 1010

    *Objetivo: hacer ms eficiente el uso de los bits de la instruccin, minimizando el tamao del opcode de las instrucciones ms utilizadas.*ADD.L (A1)+, D2 1101 010 010 011 001register = 010 (D2)opmode = 010 (destino = Dn Long)mode = 011 ( = (An)+ )ea register = 001 (A1)***ADD.W D0, (A4) 1101 000 101 010 100register = 000 (D0)opmode = 101 (destino = Word)mode = 010 ( = (An) )ea register = 100 (A4)

    ***ADD.B #5A, D3 1101 011 000 111 100register = 011 (D3)opmode = 000 (destino = Dn Byte)mode = 111 (literal )ea register = 100 (literal) QUE FALTA??? el dato mismo!!!En la siguiente palabra: XX5A = xxxx xxxx 0101 1010

    **ADD.B #5A, D3 1101 011 000 111 100register = 011 (D3)opmode = 000 (destino = Dn Byte)mode = 111 (literal )ea register = 100 (literal) QUE FALTA??? el dato mismo!!!En la siguiente palabra: XX5A = xxxx xxxx 0101 1010

    *ADD.B #5A, D3 1101 011 000 111 100register = 011 (D3)opmode = 000 (destino = Dn Byte)mode = 111 (literal )ea register = 100 (literal) QUE FALTA??? el dato mismo!!!En la siguiente palabra: XX5A = xxxx xxxx 0101 1010

    *Ej I1, ADD.W #F701, D3 como se usa direccionamiento inmediato el valor del dato va en la segunda palabra.

    **