tema3 transparencias.ppt [modo de...

86
Tema 3: Lenguaje máquina y Lenguaje ensamblador 1 y Lenguaje ensamblador

Upload: others

Post on 20-Jun-2020

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Tema3 Transparencias.ppt [Modo de compatibilidad]blog.uclm.es/.../2018/07/Tema3_Transparencias.pdf · Ëqglfh ,qwurgxfflyq /hqjxdmh pitxlqd )rupdwrv gh ,qvwuxfflyq 0rgrv gh 'luhfflrqdplhqwr

Tema 3: Lenguaje máquina y Lenguaje ensamblador

1

y Lenguaje ensamblador

Page 2: Tema3 Transparencias.ppt [Modo de compatibilidad]blog.uclm.es/.../2018/07/Tema3_Transparencias.pdf · Ëqglfh ,qwurgxfflyq /hqjxdmh pitxlqd )rupdwrv gh ,qvwuxfflyq 0rgrv gh 'luhfflrqdplhqwr

Índice• Introducción

• Lenguaje máquina

• Formatos de Instrucción

• Modos de Direccionamiento

• Regularidad

• Repertorio de instrucciones

2

• Repertorio de instrucciones

• Regularidad y ortogonalidad

• Arquitecturas RISC y CISC

• Tipos de arquitecturas (almacenamiento interno en la CPU)

• Tipos de instrucciones

• Basadas en pila, en registros de propósito general, en acumulador

y en registros

Page 3: Tema3 Transparencias.ppt [Modo de compatibilidad]blog.uclm.es/.../2018/07/Tema3_Transparencias.pdf · Ëqglfh ,qwurgxfflyq /hqjxdmh pitxlqd )rupdwrv gh ,qvwuxfflyq 0rgrv gh 'luhfflrqdplhqwr

Introducción

Arquitectura de un sistema (lo que ve el programador)• Repertorio de instrucciones y modos de direccionamiento• Tipos y formatos de los operandos• Mapa de memoria y de E/S• Modelos de ejecución

Arquitectura -- Organización

3

• Modelos de ejecuciónEj: ¿Hay una instrucción de multiplicar?

Organización de un sistema (transparente al programador)• Sistemas de interconexión y control• Interfaz entre el computador y los periféricos• Tecnologías utilizadas

Ej: ¿Hay un multiplicador, o se hace por sumas repetidas?

Page 4: Tema3 Transparencias.ppt [Modo de compatibilidad]blog.uclm.es/.../2018/07/Tema3_Transparencias.pdf · Ëqglfh ,qwurgxfflyq /hqjxdmh pitxlqd )rupdwrv gh ,qvwuxfflyq 0rgrv gh 'luhfflrqdplhqwr

• Toda la familia Intel x86 comparte la misma arquitectura básica.• La familia de IBM System/370 comparte la misma arquitectura básica.

Arquitectura -- Organización

Introducción

4

arquitectura básica.

Esto proporciona compatibilidad de código (al menos hacia atrás). La organización varía en las diferentes versiones dentro de una misma arquitectura básica

Page 5: Tema3 Transparencias.ppt [Modo de compatibilidad]blog.uclm.es/.../2018/07/Tema3_Transparencias.pdf · Ëqglfh ,qwurgxfflyq /hqjxdmh pitxlqd )rupdwrv gh ,qvwuxfflyq 0rgrv gh 'luhfflrqdplhqwr

¿Qué debe conocer el programador a bajo nivel?

Introducción

Un poco de hardware: algunos detalles sobre

5

* Curso de Arquitectura. Universidad Politécnica de Madrid

detalles sobre la CPU, cómo son y qué tamaños tienen los registros (PC, SP,.. ) , la cantidad de memoria, etc…

Page 6: Tema3 Transparencias.ppt [Modo de compatibilidad]blog.uclm.es/.../2018/07/Tema3_Transparencias.pdf · Ëqglfh ,qwurgxfflyq /hqjxdmh pitxlqd )rupdwrv gh ,qvwuxfflyq 0rgrv gh 'luhfflrqdplhqwr

Mnemotécnico Código Máquina

move #2, R2 11000111 (C7h)

add R2, R3 00110110 (36h)

Repertorio de instrucciones

Introducción

Un poco de software: repertorio de instrucciones, organización de la pila si la hubiera, etc…

6

sub #1, R2 01100110 (66h)

Pila (LIFO)

Page 7: Tema3 Transparencias.ppt [Modo de compatibilidad]blog.uclm.es/.../2018/07/Tema3_Transparencias.pdf · Ëqglfh ,qwurgxfflyq /hqjxdmh pitxlqd )rupdwrv gh ,qvwuxfflyq 0rgrv gh 'luhfflrqdplhqwr

Lenguaje máquina

• Lenguaje de bajo nivel (código binario)

• Muestra las capacidades básicas del

computador

7

• La característica más importante de la

arquitectura de un computador

• Depende del computador, lo que crea

incompatibilidades entre distintos computadores

Page 8: Tema3 Transparencias.ppt [Modo de compatibilidad]blog.uclm.es/.../2018/07/Tema3_Transparencias.pdf · Ëqglfh ,qwurgxfflyq /hqjxdmh pitxlqd )rupdwrv gh ,qvwuxfflyq 0rgrv gh 'luhfflrqdplhqwr

• Realizan una única y sencilla operación

• Utilizan un número fijo de operandos

representados de una determinada forma

Formatos de instrucción: Instrucciones máquina

Lenguaje máquina

8

representados de una determinada forma

• Codificación sistemática Decodificación sencilla

Hardware sencillo Menos coste

• Son autocontenidas e independientes, y contienen

toda la información necesaria para ejecutarse

Page 9: Tema3 Transparencias.ppt [Modo de compatibilidad]blog.uclm.es/.../2018/07/Tema3_Transparencias.pdf · Ëqglfh ,qwurgxfflyq /hqjxdmh pitxlqd )rupdwrv gh ,qvwuxfflyq 0rgrv gh 'luhfflrqdplhqwr

Formatos de instrucción: Ciclo de instrucción

Lenguaje máquina

9

Page 10: Tema3 Transparencias.ppt [Modo de compatibilidad]blog.uclm.es/.../2018/07/Tema3_Transparencias.pdf · Ëqglfh ,qwurgxfflyq /hqjxdmh pitxlqd )rupdwrv gh ,qvwuxfflyq 0rgrv gh 'luhfflrqdplhqwr

• Representación de la instrucción

• Significado de cada uno de los bits del código

• Campo: agrupación de bits que tienen un significado

Formatos de instrucción

Lenguaje máquina

10

COP CD2CD1

COP CD

COP

Instrucción de 1 operando

Instrucción de 2 operandos

Instrucción sin operandos

Page 11: Tema3 Transparencias.ppt [Modo de compatibilidad]blog.uclm.es/.../2018/07/Tema3_Transparencias.pdf · Ëqglfh ,qwurgxfflyq /hqjxdmh pitxlqd )rupdwrv gh ,qvwuxfflyq 0rgrv gh 'luhfflrqdplhqwr

Formatos de instrucción

Lenguaje máquina

• Los formatos de instrucción se diferencian en:• Almacenamiento de los operandos (pila, registros, o ambos)• Número de operandos explícitos por instrucción (lo más

habitual es que sean 1, 2 o 3)

11

• Localización del operando (registro a registro, registro a memoria, o memoria a memoria)

• Operaciones (por ejemplo, qué instrucciones tienen acceso a memoria)

• Tipos y tamaños de los operandos (los operandos pueden ser direcciones, números o caracteres)

Page 12: Tema3 Transparencias.ppt [Modo de compatibilidad]blog.uclm.es/.../2018/07/Tema3_Transparencias.pdf · Ëqglfh ,qwurgxfflyq /hqjxdmh pitxlqd )rupdwrv gh ,qvwuxfflyq 0rgrv gh 'luhfflrqdplhqwr

• Factores para evaluar el repertorio de instrucciones:• Espacio que necesita un programa• Complejidad medida en términos de decodificación

necesaria• Longitud de la instrucción, que “encaje” con el bus de datos

Formatos de instrucción: decisiones de diseño

Lenguaje máquina

12

• Longitud de la instrucción, que “encaje” con el bus de datos• Número total de instrucciones

• Otros factores a tener en cuenta:• Pocos formatos de instrucción y sistemáticos• Se prefieren instrucciones cortas a largas: menos memoria y

más rapidez• Tamaños del formato adaptado a la longitud de palabra de la

arquitectura (optimizando el acceso a memoria)

Page 13: Tema3 Transparencias.ppt [Modo de compatibilidad]blog.uclm.es/.../2018/07/Tema3_Transparencias.pdf · Ëqglfh ,qwurgxfflyq /hqjxdmh pitxlqd )rupdwrv gh ,qvwuxfflyq 0rgrv gh 'luhfflrqdplhqwr

• Muchos códigos de operación diferentes

• Muchos modos de direccionamiento diferentes

• Cantidad suficiente de bits para direccionar toda la memoria

Formatos de instrucción: diseño del formato

Lenguaje máquina

13

toda la memoria

• Registros de la CPU

• Compromiso entre espacio y amplia variedad del repertorio de instrucciones

Page 14: Tema3 Transparencias.ppt [Modo de compatibilidad]blog.uclm.es/.../2018/07/Tema3_Transparencias.pdf · Ëqglfh ,qwurgxfflyq /hqjxdmh pitxlqd )rupdwrv gh ,qvwuxfflyq 0rgrv gh 'luhfflrqdplhqwr

Formatos de instrucción: código de operación

Lenguaje máquina

14

Page 15: Tema3 Transparencias.ppt [Modo de compatibilidad]blog.uclm.es/.../2018/07/Tema3_Transparencias.pdf · Ëqglfh ,qwurgxfflyq /hqjxdmh pitxlqd )rupdwrv gh ,qvwuxfflyq 0rgrv gh 'luhfflrqdplhqwr

• Longitud fija

– Gasta espacio de memoria

– Mejores prestaciones en la fase de decodificación

– Se usan normalmente pocos tamaños de instrucción

Formatos de instrucción: técnicas de codificación

Lenguaje máquina

15

• Longitud variable

– Mayor complejidad de codificación

– Ahorra espacio de memoria

• El compromiso entre longitud fija y variable está en el tamaño de los programas en función de la facilidad de decodificación en el procesador

Page 16: Tema3 Transparencias.ppt [Modo de compatibilidad]blog.uclm.es/.../2018/07/Tema3_Transparencias.pdf · Ëqglfh ,qwurgxfflyq /hqjxdmh pitxlqd )rupdwrv gh ,qvwuxfflyq 0rgrv gh 'luhfflrqdplhqwr

• COP (sin operandos)

• COP + 1 operando (normalmente una dirección de memoria)

• COP + 2 operandos (normalmente registros o

Formatos de instrucción: formatos típicos

Lenguaje máquina

16

• COP + 2 operandos (normalmente registros o direcciones de memoria y registros)

• COP + 3 operandos (normalmente registros o combinación de direcciones de memoria y registros)

Page 17: Tema3 Transparencias.ppt [Modo de compatibilidad]blog.uclm.es/.../2018/07/Tema3_Transparencias.pdf · Ëqglfh ,qwurgxfflyq /hqjxdmh pitxlqd )rupdwrv gh ,qvwuxfflyq 0rgrv gh 'luhfflrqdplhqwr

• Compromiso entre muchos códigos de operación y cortos

• Sea una máquina con instrucciones de 16 bits y 16 registros (se necesitan 4 bits para elegir un registro):

– Se podrían codificar16 instrucciones, cada una con 3 operandos de registro (4 bits para la instrucción y 12 para los operandos)

– Se podrían usar 4 bits para el COP y 12 bits para la dirección de

Formatos de instrucción: codificación por extensión

Lenguaje máquina

17

– Se podrían usar 4 bits para el COP y 12 bits para la dirección de memoria

COP Dirección 1

COP Dirección 1

Dirección 2 Dirección 3

Page 18: Tema3 Transparencias.ppt [Modo de compatibilidad]blog.uclm.es/.../2018/07/Tema3_Transparencias.pdf · Ëqglfh ,qwurgxfflyq /hqjxdmh pitxlqd )rupdwrv gh ,qvwuxfflyq 0rgrv gh 'luhfflrqdplhqwr

xx xx xx xxCOP CD1 CD2 CD3

11 11 11 11 xx xx xx xxCOP CD1 CD2

1 combinación librei.e.: 1111

2 combinaciones libres

Formatos de instrucción: codificación por extensión

Lenguaje máquina

18

11 11 11 11 11 11 11 xx xx xx xx xxCOP CD

11 11 11 11 11 11 11 11 11 11 11 11 xx xx xx xxCOP

2 combinaciones libresi.e.: 111X

1 combinación librei.e.: 1111

Page 19: Tema3 Transparencias.ppt [Modo de compatibilidad]blog.uclm.es/.../2018/07/Tema3_Transparencias.pdf · Ëqglfh ,qwurgxfflyq /hqjxdmh pitxlqd )rupdwrv gh ,qvwuxfflyq 0rgrv gh 'luhfflrqdplhqwr

• Supongamos que queremos codificar las siguientes instrucciones:

– 15 instrucciones con 3 operandos

– 14 instrucciones con 2 operandos

Formatos de instrucción: codificación por extensión

Lenguaje máquina

19

– 14 instrucciones con 2 operandos

– 31 instrucciones con 1 operando

– 16 instrucciones sin operandos

Page 20: Tema3 Transparencias.ppt [Modo de compatibilidad]blog.uclm.es/.../2018/07/Tema3_Transparencias.pdf · Ëqglfh ,qwurgxfflyq /hqjxdmh pitxlqd )rupdwrv gh ,qvwuxfflyq 0rgrv gh 'luhfflrqdplhqwr

0000 R1 R2 R3

...

1110 R1 R2 R3

1111 0000 R1 R2

1111 1101 R1 R2

15 instrucciones con 3 operandos

14 instrucciones con 2 operandos

Formatos de instrucción: codificación por extensión

Lenguaje máquina

20

1111 1101 R1 R2

1111 1110 0000 R1

1111 1111 1110 R1

1111 1111 1111 0000

1111 1111 1111 1111

31 instrucciones con 1 operando

16 instrucciones sin operandos

Page 21: Tema3 Transparencias.ppt [Modo de compatibilidad]blog.uclm.es/.../2018/07/Tema3_Transparencias.pdf · Ëqglfh ,qwurgxfflyq /hqjxdmh pitxlqd )rupdwrv gh ,qvwuxfflyq 0rgrv gh 'luhfflrqdplhqwr

00 00 00 00COP CD1 CD2 CD3

11 11 11 11 11 11 11 00 00 00 00 00COP CD

15 instrucciones con 3 direcciones 31 instrucciones con 1 dirección

11 11 11 00

… …

11 11 11 11 11 11 11 11 11 11 11 00

Formatos de instrucción: codificación por extensión

Lenguaje máquina

21

11 11 11 11 00 00 00 00COP CD1 CD2

11 11 11 11 11 11 11 11 11 11 11 11 00 00 00 00COP

16 instrucciones sin dirección14 instrucciones con 2 direcciones

11 11 11 11 11 11 00 11

… …

11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11

•La codificación por extensión permite 76 instrucciones en vez de las 16 que se obtendrían con un COP fijo de 4 bits y 3 direcciones.

Page 22: Tema3 Transparencias.ppt [Modo de compatibilidad]blog.uclm.es/.../2018/07/Tema3_Transparencias.pdf · Ëqglfh ,qwurgxfflyq /hqjxdmh pitxlqd )rupdwrv gh ,qvwuxfflyq 0rgrv gh 'luhfflrqdplhqwr

COP fijo

• Instrucciones de tamaño

variable

Codificación por

extensión

• Instrucciones de tamaño fijo

Formatos de instrucción: codificación por extensión

Lenguaje máquina

22

• Tamaño COP fijo

• Con n bits se pueden obtener

2n COP distintos

• Ej: Intel, Motorola

• Tamaño COP variable

• Extensión en el número de bits

del COP para instrucciones con

menor número de operandos

• Ej: PowerPC

Page 23: Tema3 Transparencias.ppt [Modo de compatibilidad]blog.uclm.es/.../2018/07/Tema3_Transparencias.pdf · Ëqglfh ,qwurgxfflyq /hqjxdmh pitxlqd )rupdwrv gh ,qvwuxfflyq 0rgrv gh 'luhfflrqdplhqwr

Modos de direccionamiento: campos de direcciónLenguaje máquina

23

Page 24: Tema3 Transparencias.ppt [Modo de compatibilidad]blog.uclm.es/.../2018/07/Tema3_Transparencias.pdf · Ëqglfh ,qwurgxfflyq /hqjxdmh pitxlqd )rupdwrv gh ,qvwuxfflyq 0rgrv gh 'luhfflrqdplhqwr

• Las instrucciones usan modos de direccionamiento para determinar dónde y cómo se pueden conseguir los operandos

• Los modos de direccionamiento ayudan a

Modos de direccionamiento: ¿dónde están los operandos?

Lenguaje máquina

24

• Los modos de direccionamiento ayudan a reducir la complejidad de un programa al tiempo que aumentan las prestaciones del procesador

Page 25: Tema3 Transparencias.ppt [Modo de compatibilidad]blog.uclm.es/.../2018/07/Tema3_Transparencias.pdf · Ëqglfh ,qwurgxfflyq /hqjxdmh pitxlqd )rupdwrv gh ,qvwuxfflyq 0rgrv gh 'luhfflrqdplhqwr

• Hay cuatro categorías de modos de direccionamiento:

– Datos: modos usados para referirse a operandos (todos los modos excepto el directo a registro)

– Memoria: aquéllos que se refieren a cómo conseguir un operando alojado en memoria (excluyendo el directo a

Modos de direccionamiento: ¿dónde están los operandos?

Lenguaje máquina

25

operando alojado en memoria (excluyendo el directo a registro)

– Control: Los que pueden usarse para operandos que hay en memoria que no tiene un tamaño asociado y que generalmente se emplean para instrucciones de control: saltos, llamadas a procedimientos, …

– Modificables: Incluyen aquellos modos para referirse a operandos que se pueden modificar. Por ejemplo, la dirección relativa al contador del programa

Page 26: Tema3 Transparencias.ppt [Modo de compatibilidad]blog.uclm.es/.../2018/07/Tema3_Transparencias.pdf · Ëqglfh ,qwurgxfflyq /hqjxdmh pitxlqd )rupdwrv gh ,qvwuxfflyq 0rgrv gh 'luhfflrqdplhqwr

En una instrucción:•Rápido y simple •Sólo válido para constantes•No válido para resultados

En memoria:

Lenguaje máquinaVentajas e inconvenientes de guardar un dato en cada uno de los siguientes lugares a efectos de ejecutar la instrucción:

26

En memoria:•Gran capacidad •Lento•Se necesitan muchos bits para determinar la posición

En un registro de la CPU:•Rápido•Se necesitan pocos bits para determinar el registro•Escasez de registros•Se necesita cargar el registro

Page 27: Tema3 Transparencias.ppt [Modo de compatibilidad]blog.uclm.es/.../2018/07/Tema3_Transparencias.pdf · Ëqglfh ,qwurgxfflyq /hqjxdmh pitxlqd )rupdwrv gh ,qvwuxfflyq 0rgrv gh 'luhfflrqdplhqwr

• No existe campo de dirección (CD)• La dirección del operando se encuentra implícita en el propio código de operación

• Ventaja: no se necesita espacio para codificar la dirección del operando

Modos de direccionamiento: implícito

Lenguaje máquina

27

la dirección del operando• Inconveniente: limita la aplicación de la

operación• Ejemplo:

• Instrucciones del modelo de pila. Introducir y sacar datos de la pila (push-pop)

Page 28: Tema3 Transparencias.ppt [Modo de compatibilidad]blog.uclm.es/.../2018/07/Tema3_Transparencias.pdf · Ëqglfh ,qwurgxfflyq /hqjxdmh pitxlqd )rupdwrv gh ,qvwuxfflyq 0rgrv gh 'luhfflrqdplhqwr

• El operando es parte de la propia instrucción (literal)• Ventaja: no requiere accesos a memoria ni a registros• Inconveniente: rango limitado por el ancho del campo.

Modos de direccionamiento: inmediato

Lenguaje máquina

28

A

ALU

Memoria principal

COP CD=1000CP

Page 29: Tema3 Transparencias.ppt [Modo de compatibilidad]blog.uclm.es/.../2018/07/Tema3_Transparencias.pdf · Ëqglfh ,qwurgxfflyq /hqjxdmh pitxlqd )rupdwrv gh ,qvwuxfflyq 0rgrv gh 'luhfflrqdplhqwr

COP MODO INMEDIATO

MOVE #9,D2 ???? ????

D2

Modos de direccionamiento: inmediato

Lenguaje máquina

29

MOVE #9,D2 ???? ????

0000 0009

D2

Antes

Después

Page 30: Tema3 Transparencias.ppt [Modo de compatibilidad]blog.uclm.es/.../2018/07/Tema3_Transparencias.pdf · Ëqglfh ,qwurgxfflyq /hqjxdmh pitxlqd )rupdwrv gh ,qvwuxfflyq 0rgrv gh 'luhfflrqdplhqwr

Modos de direccionamiento: directo o absoluto

Lenguaje máquina

• El operando está en la dirección de memoria indicada• Ventaja: se puede direccionar de forma sencilla y directa todo el espacio de direccionamiento• Inconveniente: el acceso a memoria es más lento

30

Ejemplo (i8085): Instrucción LDA 1000, carga el contenido de la posición 1000 de la memoria en el acumulador A

ALU

Memoria principal

COP CD=1000

Operando1000

CP

Page 31: Tema3 Transparencias.ppt [Modo de compatibilidad]blog.uclm.es/.../2018/07/Tema3_Transparencias.pdf · Ëqglfh ,qwurgxfflyq /hqjxdmh pitxlqd )rupdwrv gh ,qvwuxfflyq 0rgrv gh 'luhfflrqdplhqwr

INC R2

Modos de direccionamiento: directo a registro

Lenguaje máquina

• El operando está en el registro establecido• Ventaja: el acceso a registros es más rápido que a memoria. Además, el número de registros es pequeño• Inconveniente: el número de registro es limitado

31

INC R2

COP 0010 (2h)Registros de la CPU

R1

R2 Operando

R3

R4

… …

Rn

Valores temporales o muy referenciadosSin referencias a memoriaRequiere pocos bitsPocos registros

Page 32: Tema3 Transparencias.ppt [Modo de compatibilidad]blog.uclm.es/.../2018/07/Tema3_Transparencias.pdf · Ëqglfh ,qwurgxfflyq /hqjxdmh pitxlqd )rupdwrv gh ,qvwuxfflyq 0rgrv gh 'luhfflrqdplhqwr

COP CD P+d bits

PunteroCP

• La instrucción no contiene la dirección, sino undesplazamiento D para sumar a la dirección de un puntero

• Ventaja: Necesita menos bits que en

Modos de direccionamiento: relativo

Lenguaje máquina

32

Memoria principal

Rango direccionable

Operando

P - 2d-1

P + 2d-1 - 1

menos bits que en el modo absoluto

• Inconveniente:Necesita realizar una suma

Page 33: Tema3 Transparencias.ppt [Modo de compatibilidad]blog.uclm.es/.../2018/07/Tema3_Transparencias.pdf · Ëqglfh ,qwurgxfflyq /hqjxdmh pitxlqd )rupdwrv gh ,qvwuxfflyq 0rgrv gh 'luhfflrqdplhqwr

• La mayoría de los computadores permiten desplazamientos, incrementos y decrementos con el fin de:

• Permitir generar código reubicable, recorrer estructuras de datos, esquemas de protección

Modos de direccionamiento: relativo

Lenguaje máquina

33

estructuras de datos, esquemas de protección de memoria, ...

• Según el puntero, existen diversas variantes:• Contador de programa (PC)• Registro base• Pila

Page 34: Tema3 Transparencias.ppt [Modo de compatibilidad]blog.uclm.es/.../2018/07/Tema3_Transparencias.pdf · Ëqglfh ,qwurgxfflyq /hqjxdmh pitxlqd )rupdwrv gh ,qvwuxfflyq 0rgrv gh 'luhfflrqdplhqwr

COP CD=16

Operando

103+CP

119

102

103

Relativo al

Modos de direccionamiento: relativo

Lenguaje máquina

34

Memoria principal

COP CD=16

Operando

200+RBRB

216

CP

Memoria principal

Operando119Relativo a Registro Base

Relativo al Contador de Programa

Page 35: Tema3 Transparencias.ppt [Modo de compatibilidad]blog.uclm.es/.../2018/07/Tema3_Transparencias.pdf · Ëqglfh ,qwurgxfflyq /hqjxdmh pitxlqd )rupdwrv gh ,qvwuxfflyq 0rgrv gh 'luhfflrqdplhqwr

RB

Indexado: Se utiliza un registro índice y undesplazamiento, que se especifica medianteregistro.

Modos de direccionamiento: relativo

Lenguaje máquina

35

Memoria principal

COP RB

Operando

200

+

RiRB

216

CP

16Ri

Page 36: Tema3 Transparencias.ppt [Modo de compatibilidad]blog.uclm.es/.../2018/07/Tema3_Transparencias.pdf · Ëqglfh ,qwurgxfflyq /hqjxdmh pitxlqd )rupdwrv gh ,qvwuxfflyq 0rgrv gh 'luhfflrqdplhqwr

• Auto-incremento: El contenido del registro base o índicepuede modificarse para recorrer los elementos de un vector.

• Preincremento, predecremento: Primero se incrementa /decrementa el RB y después se resuelve la dirección

Modos de direccionamiento: relativo

Lenguaje máquina

36

Memoria principal

COP CD=16

Operando

200+RBRB

ALU

+1

217

CP

decrementa el RB y después se resuelve la dirección• Postincremento, postdecremento: Primero se resuelve la

dirección y después se incrementa / decrementa el RB

Page 37: Tema3 Transparencias.ppt [Modo de compatibilidad]blog.uclm.es/.../2018/07/Tema3_Transparencias.pdf · Ëqglfh ,qwurgxfflyq /hqjxdmh pitxlqd )rupdwrv gh ,qvwuxfflyq 0rgrv gh 'luhfflrqdplhqwr

COP CD=100CP

La instrucción indica la dirección de memoria o el registro que contiene la dirección del operando

No es necesario saber la

Modos de direccionamiento: indirecto

Lenguaje máquina

37

Memoria principal

Dir. Operando=200

Operando

100

200

No es necesario saber la dirección del dato al generar el código

Necesita varios accesos a memoria

Page 38: Tema3 Transparencias.ppt [Modo de compatibilidad]blog.uclm.es/.../2018/07/Tema3_Transparencias.pdf · Ëqglfh ,qwurgxfflyq /hqjxdmh pitxlqd )rupdwrv gh ,qvwuxfflyq 0rgrv gh 'luhfflrqdplhqwr

Modo Prefijo Ejemplo

Inmediato Prefijo # #valor

Absoluto Prefijo / /dir

Registro Prefijo . .dir

IEEE 694 (1985). Standard for Microprocessor Assembly Language(Estándar para el lenguaje ensamblador de microprocesadores)

Modos de direccionamiento: IEEE 694Lenguaje máquina

38

Página base Prefijo ! !dir

Relativo a Registro Base [ ] despl[.reg] ó [.reg,desp]

Relativo a PC Prefijo $ $dir

Con autopreincremento Prefijo ++ ++dir

Con autopredecremento Prefijo - - - -dir

Con autopostincremento Sufijo ++ dir++

Con autopostdecremento Sufijo - - dir- -

Indirecto [ ] [dir]

Page 39: Tema3 Transparencias.ppt [Modo de compatibilidad]blog.uclm.es/.../2018/07/Tema3_Transparencias.pdf · Ëqglfh ,qwurgxfflyq /hqjxdmh pitxlqd )rupdwrv gh ,qvwuxfflyq 0rgrv gh 'luhfflrqdplhqwr

Direcciona-miento

Tipo Operando

#6 Inmediato

/0002 Absoluto a memoria

[0001] Indirecto a memoria

.3 Absoluto a registro

Banco de registros

R0 0001

R1 0002

R2 0000

R3 0005

Memoria de datos

0000 0002

Modos de direccionamiento: IEEE 694Lenguaje máquina

0006

0001

0000

0005

39

[.3] Indirecto a registro

1[.3] ó [.3,1] Relativo a Registro Base

2[++.2] Relativo Reg. con preinc

2[- -.1] Relativo Reg. con predec

2[.2++] Relativo Reg. con postinc

2[.1- -] Relativo Reg. con postdec

0000 0002

0001 0007

0002 0001

0003 0000

0004 0004

0005 0006

0006 0005

0007 0000

0005

0006

00050000

0000

0001

0004

Page 40: Tema3 Transparencias.ppt [Modo de compatibilidad]blog.uclm.es/.../2018/07/Tema3_Transparencias.pdf · Ëqglfh ,qwurgxfflyq /hqjxdmh pitxlqd )rupdwrv gh ,qvwuxfflyq 0rgrv gh 'luhfflrqdplhqwr

• #6: directamente la constante 0006.• /0002: el contenido de la dirección absoluta de memoria 0002,

que es 0001.• [0001]: en la dirección 0001 está la dirección del dato, que es

0007. Por tanto, el dato es 0000.• .3: el contenido del registro 3, que es 0005.• [.3]: en el registro 3 está la dirección del dato, que es 0005. Por

Modos de direccionamiento: IEEE 694Lenguaje máquina

40

• [.3]: en el registro 3 está la dirección del dato, que es 0005. Portanto, el dato es 0006.

• 1[.3]: suma el contenido del registro 3 más 1. El registro 3estaba a 5. Por tanto, el dato está en la dirección de memoria0006, y es 0005.

• 2[++.2]: incrementa el contenido del registro 2 y se le suma 2.El registro 2 estaba a 0, se pone a 1 y se le suma 2, quedando3. Por tanto, el dato está en la dirección de memoria 0003, y es0000.

Page 41: Tema3 Transparencias.ppt [Modo de compatibilidad]blog.uclm.es/.../2018/07/Tema3_Transparencias.pdf · Ëqglfh ,qwurgxfflyq /hqjxdmh pitxlqd )rupdwrv gh ,qvwuxfflyq 0rgrv gh 'luhfflrqdplhqwr

• 2[--.1]: decrementa el contenido del registro 1 y se le suma2. El registro 1 estaba a 2, se pone a 1 y se le suma 2. Portanto, el dato está en la dirección de memoria 0003, y es0000.

• 2[.2++]: suma el contenido del registro 2 más 2 y después

Modos de direccionamiento: IEEE 694Lenguaje máquina

41

• 2[.2++]: suma el contenido del registro 2 más 2 y despuésincrementa el registro 2. El registro 2 estaba a 0. Por tanto,saldrá 2, y el dato está en la dirección de memoria 0002, yes 0001.

• 2[.1--]: suma el contenido del registro 1 más 2 y después sedecrementa el registro 1. El registro 1 estaba a 2. Por tanto,el dato está en la dirección de memoria 0004, y es 0004.

Page 42: Tema3 Transparencias.ppt [Modo de compatibilidad]blog.uclm.es/.../2018/07/Tema3_Transparencias.pdf · Ëqglfh ,qwurgxfflyq /hqjxdmh pitxlqd )rupdwrv gh ,qvwuxfflyq 0rgrv gh 'luhfflrqdplhqwr

Instrucción Resultado

ADD /0002, .3

ADD [0000], #6

SUBSTRACT #6, .1

MULTIPLY /0000, [.3]

DIVIDE .3,5[.0++]

Banco de registros

R0 0001

R1 0002

R2 0000

R3 0005

Memoria de datos

0000 0002

00060007

0004

000C0001

Modos de direccionamiento: IEEE 694Lenguaje máquina

42

DIVIDE .3,5[.0++]0000 0002

0001 0007

0002 0001

0003 0000

0004 0004

0005 0006

0006 0005

0007 0000

AVISO: Los datos están en base 16

0001

Page 43: Tema3 Transparencias.ppt [Modo de compatibilidad]blog.uclm.es/.../2018/07/Tema3_Transparencias.pdf · Ëqglfh ,qwurgxfflyq /hqjxdmh pitxlqd )rupdwrv gh ,qvwuxfflyq 0rgrv gh 'luhfflrqdplhqwr

ADD /0002, .3: suma el contenido de la dirección de memoria absoluta 0002, quees 0001, y el contenido del registro 3, que es 0005, resultando 0006.

ADD [0000], #6: suma el contenido de la posición de memoria 0002 (el contenidode 0000 es 0002), que es 0001 y la constante 0006, resultando 0007.

SUBSTRACT #6, .1: resta de la constante 0006 el contenido del registro 1, que es0002, quedando 0004.

Modos de direccionamiento: IEEE 694Lenguaje máquina

43

0002, quedando 0004.

MULTIPLI /0000, [.3]: multiplica el contenido de la dirección de memoria 0000,que es 0002, por el contenido de la posición de memoria contenida en el registro 3,que es 0006, resultando 000C.

DIVIDE .3, 5[.0++]: divide el contenido del registro 3, que es 0005, entre elcontenido de la posición de memoria obtenida sumando el contenido del registro 0,que es 1 (y posteriormente se aumenta), más 5, resultando la dirección 0006, cuyocontenido es 0005. La división que se realiza es 5/5=1, en binario 0001.

Page 44: Tema3 Transparencias.ppt [Modo de compatibilidad]blog.uclm.es/.../2018/07/Tema3_Transparencias.pdf · Ëqglfh ,qwurgxfflyq /hqjxdmh pitxlqd )rupdwrv gh ,qvwuxfflyq 0rgrv gh 'luhfflrqdplhqwr

Descifra el enigma…¿Cuál fue el primer computador electrónico?

Instrucción Resultado Letra mensaje

ADD .0 [.3]

ADD #20, /0000

SUBSTRACT .1, #7

MULTIPLY [0002], .2

Banco de registros

R0 0060

R1 0080

R2 0013

R3 0005

Memoria de datos

0000 0058

0069 E

0078 N

0073 I

0065 A

44

DIVIDE [0004], 3[- -.3]0000 0058

0001 0005

0002 0001

0003 0000

0004 0006

0005 0009

0006 0067

0007 0001

AVISO: Los datos están en base 10

0067 C

Page 45: Tema3 Transparencias.ppt [Modo de compatibilidad]blog.uclm.es/.../2018/07/Tema3_Transparencias.pdf · Ëqglfh ,qwurgxfflyq /hqjxdmh pitxlqd )rupdwrv gh ,qvwuxfflyq 0rgrv gh 'luhfflrqdplhqwr

ADD .0, [.3]: suma el contenido del registro 0, que es 60, más el contenido de ladirección de memoria contenida en R3, que es la dirección 0005, cuyo valor es0009, resultando 0069.ADD #20,/0000]: suma la constante 0020 más el contenido de la posición dememoria 0000, que es 0058, resultando 0078.SUBSTRACT .1,#7: resta de la constante contenida en el registro 1, que es 0080,la constante 0007, resultando 0073.MULTIPLY [0002], .3: multiplica el contenido de la dirección de memoria

Modos de direccionamiento: IEEE 694Lenguaje máquina

45

MULTIPLY [0002], .3: multiplica el contenido de la dirección de memoriacontenida en 0001 (observar que la posición de memoria 0002 tiene el valor 0001),que es 0005, por el contenido del registro 2, que es 0013, resultando 0065.DIVIDE [0004], 3[--.3]: divide el contenido de la dirección de memoria contenidaen 0006 (observar que la posición de memoria 0004 tiene el valor 0006), que es0067, entre el contenido de la posición de memoria que se obtiene de decrementarel registro 3, quedando 0004, más 3, lo que da el valor 0007. El contendido de laposición de memoria 0007 es 1. La división que se realiza es 67/1=67, resultando0067.

Page 46: Tema3 Transparencias.ppt [Modo de compatibilidad]blog.uclm.es/.../2018/07/Tema3_Transparencias.pdf · Ëqglfh ,qwurgxfflyq /hqjxdmh pitxlqd )rupdwrv gh ,qvwuxfflyq 0rgrv gh 'luhfflrqdplhqwr

Regularidad: El juego de instrucciones no presenta casos especiales

• Es más fácil programar arquitecturas

RegularidadRepertorio de instrucciones

46

• Es más fácil programar arquitecturas regulares

• Permite diseñar compiladores más sencillos y eficaces

Page 47: Tema3 Transparencias.ppt [Modo de compatibilidad]blog.uclm.es/.../2018/07/Tema3_Transparencias.pdf · Ëqglfh ,qwurgxfflyq /hqjxdmh pitxlqd )rupdwrv gh ,qvwuxfflyq 0rgrv gh 'luhfflrqdplhqwr

Ortogonalidad: Cualquier instrucción se puede ejecutar con cualquier tipo de operandos y con cualquier tipo de direccionamiento

• Gran número de instrucciones con un pequeño

OrtogonalidadRepertorio de instrucciones

47

• Gran número de instrucciones con un pequeño número de mnemónicos

• Proporciona simplicidad y claridad al programador

Page 48: Tema3 Transparencias.ppt [Modo de compatibilidad]blog.uclm.es/.../2018/07/Tema3_Transparencias.pdf · Ëqglfh ,qwurgxfflyq /hqjxdmh pitxlqd )rupdwrv gh ,qvwuxfflyq 0rgrv gh 'luhfflrqdplhqwr

• Para optimizar el diseño, se han realizado estudios

sobre la frecuencia de uso de las instrucciones:

o Analizan la frecuencia de uso de las

Frecuencia de uso de las instrucciones

Repertorio de instrucciones

48

instrucciones y las secuencias más utilizadas

• Dos tipos de estudios:

o Estáticos (lectura del listado de los programas)

o Dinámicos (en tiempo de ejecución)

Page 49: Tema3 Transparencias.ppt [Modo de compatibilidad]blog.uclm.es/.../2018/07/Tema3_Transparencias.pdf · Ëqglfh ,qwurgxfflyq /hqjxdmh pitxlqd )rupdwrv gh ,qvwuxfflyq 0rgrv gh 'luhfflrqdplhqwr

Otras 2%

Comparación y despl. 15%

Aritmética entera 7%Bifurcación 30%

Aritmética real 3%

Estudio de Fairclough (estático)Frecuencia de uso de las instrucciones

Repertorio de instrucciones

49

Aritmética real 3%

Transferencia 43%

Lógicas 4%

E/S 1%

Salto 29%De bit 2%

Comparación 6%

Desplazamiento 3%

Transferencia 45%

Estudio de Flynn (dinámico)

Page 50: Tema3 Transparencias.ppt [Modo de compatibilidad]blog.uclm.es/.../2018/07/Tema3_Transparencias.pdf · Ëqglfh ,qwurgxfflyq /hqjxdmh pitxlqd )rupdwrv gh ,qvwuxfflyq 0rgrv gh 'luhfflrqdplhqwr

•Conclusiones extraídas del estudio

• Casi el 50% de las instrucciones se dedican a mover información dentro del computador

• Las bifurcaciones constituyen el segundo grupo

Frecuencia de uso de las instrucciones

Repertorio de instrucciones

50

• Las bifurcaciones constituyen el segundo grupo de instrucciones más empleado

• El 50% de las instrucciones de los computadores se utilizan menos de un 2%, pero son importantes para aplicaciones específicas y no se puede prescindir de ellas

Page 51: Tema3 Transparencias.ppt [Modo de compatibilidad]blog.uclm.es/.../2018/07/Tema3_Transparencias.pdf · Ëqglfh ,qwurgxfflyq /hqjxdmh pitxlqd )rupdwrv gh ,qvwuxfflyq 0rgrv gh 'luhfflrqdplhqwr

• Históricamente, CISC (Complex Instruction Set Computer):o Al principio las memorias eran lentas y costosa. Había que reducir el

tamaño de los programaso Pocas instrucciones, pero complejaso Cada instrucción necesita un número variable y elevado de ciclos de

reloj

Filosofías CISC y RISCRepertorio de instrucciones

51

reloj

• Actualmente, RISC (Reduced Instruction Set Computer):o Concepto introducido por Hennesy y Patterson en los años 80o Menos instrucciones y menos modos de direccionamientoo Instrucciones sencillaso Ejecución en uno o pocos ciclos de relojo Formato fijo para las instrucciones, ejecución regularo Unidad de control más sencillao Aumenta las prestaciones y el rendimiento y reduce el coste

Page 52: Tema3 Transparencias.ppt [Modo de compatibilidad]blog.uclm.es/.../2018/07/Tema3_Transparencias.pdf · Ëqglfh ,qwurgxfflyq /hqjxdmh pitxlqd )rupdwrv gh ,qvwuxfflyq 0rgrv gh 'luhfflrqdplhqwr

• Tiempo de ejecución de un programa (Tp):

I: número de instrucciones

Tp = I x C x Tc

Repertorio de instruccionesFilosofías CISC y RISC

52

I: número de instruccionesC: número de ciclos por instrucción (valor medio)Tc: duración de un ciclo

CISC: Minimiza I, a costa de incrementar C

RISC: Minimiza C, a costa de incrementar I

Page 53: Tema3 Transparencias.ppt [Modo de compatibilidad]blog.uclm.es/.../2018/07/Tema3_Transparencias.pdf · Ëqglfh ,qwurgxfflyq /hqjxdmh pitxlqd )rupdwrv gh ,qvwuxfflyq 0rgrv gh 'luhfflrqdplhqwr

Busca en Internet los siguientes conceptos

• CISC (Complex Instruction Set Computer)

• RISC (Reduced Instruction Set Computer)

Repertorio de instruccionesFilosofías CISC y RISC

53

¿Cuáles son sus principales características?

¿En qué se diferencian?

¿Puedes poner un ejemplo de procesador para cada uno de ellos?

Page 54: Tema3 Transparencias.ppt [Modo de compatibilidad]blog.uclm.es/.../2018/07/Tema3_Transparencias.pdf · Ëqglfh ,qwurgxfflyq /hqjxdmh pitxlqd )rupdwrv gh ,qvwuxfflyq 0rgrv gh 'luhfflrqdplhqwr

Tipos de las arquitecturas

• Según los criterios de localización y especificación de los operandos:

• Basadas en pila: operandos implícitos y se encuentran en la pila

54

encuentran en la pila

• Basadas en acumulador: uno de los operandos se encuentra de manera implícita en el acumulador

• Basadas en registros de propósito general:operandos explícitos en registros y memoria

Page 55: Tema3 Transparencias.ppt [Modo de compatibilidad]blog.uclm.es/.../2018/07/Tema3_Transparencias.pdf · Ëqglfh ,qwurgxfflyq /hqjxdmh pitxlqd )rupdwrv gh ,qvwuxfflyq 0rgrv gh 'luhfflrqdplhqwr

• Registro-registro (load-store): operandos y resultado en registros

• Acceso a memoria mediante instrucciones de carga (load) y almacenamiento (store)

Tipos de las arquitecturasArquitecturas basadas en registros

55

carga (load) y almacenamiento (store)

• Registro-memoria: cualquier instrucción puede acceder a memoria con uno de sus operandos

• Memoria-memoria (en desuso): todos las instrucciones acceden a memoria

Page 56: Tema3 Transparencias.ppt [Modo de compatibilidad]blog.uclm.es/.../2018/07/Tema3_Transparencias.pdf · Ëqglfh ,qwurgxfflyq /hqjxdmh pitxlqd )rupdwrv gh ,qvwuxfflyq 0rgrv gh 'luhfflrqdplhqwr

Tipos de instruccionesEjecución

56

Page 57: Tema3 Transparencias.ppt [Modo de compatibilidad]blog.uclm.es/.../2018/07/Tema3_Transparencias.pdf · Ëqglfh ,qwurgxfflyq /hqjxdmh pitxlqd )rupdwrv gh ,qvwuxfflyq 0rgrv gh 'luhfflrqdplhqwr

• Información de la ejecución de una instrucción

• Se activan si se ha cumplido la condición correspondiente

• Se agrupan en un registro de ESTADO o

Tipos de instruccionesBits de estado

57

• Se agrupan en un registro de ESTADO o STATUS, (Status Register, SR)

• Ejemplos:

• Cero, Acarreo, Signo,…

Page 58: Tema3 Transparencias.ppt [Modo de compatibilidad]blog.uclm.es/.../2018/07/Tema3_Transparencias.pdf · Ëqglfh ,qwurgxfflyq /hqjxdmh pitxlqd )rupdwrv gh ,qvwuxfflyq 0rgrv gh 'luhfflrqdplhqwr

• Aritméticas / lógicas / desplazamiento

• Transferencia de datos

• Comparación / condicional

Tipos de instrucciones

58

• Comparación / condicional

• Transferencia de control

• Entrada / salida

Page 59: Tema3 Transparencias.ppt [Modo de compatibilidad]blog.uclm.es/.../2018/07/Tema3_Transparencias.pdf · Ëqglfh ,qwurgxfflyq /hqjxdmh pitxlqd )rupdwrv gh ,qvwuxfflyq 0rgrv gh 'luhfflrqdplhqwr

Tipos de instruccionesRuptura del flujo de ejecución

59

Page 60: Tema3 Transparencias.ppt [Modo de compatibilidad]blog.uclm.es/.../2018/07/Tema3_Transparencias.pdf · Ëqglfh ,qwurgxfflyq /hqjxdmh pitxlqd )rupdwrv gh ,qvwuxfflyq 0rgrv gh 'luhfflrqdplhqwr

• Describe la secuencia de pasos que se deben llevar a cabo cuando se produce una llamada a un procedimiento mientras se produce una ejecución

– Guardar la dirección de retorno

– Actualizar el contador de programa dos veces (antes y

Tipos de instruccionesLlamadas a procedimientos

60

– Actualizar el contador de programa dos veces (antes y después del salto)

• Se rompe el flujo de la ejecución de modo que se necesitan mecanismos adicionales para “recuperar” el programa principal al finalizar

– Uso de la pila y registros de propósito específico

Page 61: Tema3 Transparencias.ppt [Modo de compatibilidad]blog.uclm.es/.../2018/07/Tema3_Transparencias.pdf · Ëqglfh ,qwurgxfflyq /hqjxdmh pitxlqd )rupdwrv gh ,qvwuxfflyq 0rgrv gh 'luhfflrqdplhqwr

Tipos de instruccionesLlamadas a procedimientos

61

Page 62: Tema3 Transparencias.ppt [Modo de compatibilidad]blog.uclm.es/.../2018/07/Tema3_Transparencias.pdf · Ëqglfh ,qwurgxfflyq /hqjxdmh pitxlqd )rupdwrv gh ,qvwuxfflyq 0rgrv gh 'luhfflrqdplhqwr

¿El puntero crece en direcciones crecientes o decrecientes?

¿Dónde apunta el Puntero de Pila (Stack Pointer, SP)?

CRECIENTES DECRECIENTES

Tipos de instruccionesLlamadas a procedimientos: la pila

62

DATO EN LA CIMA DE LA PILA

CASO 1 CASO 2

DATO ENCIMA DE LA CIMA DE LA PILA (FUERA PILA)

CASO 3 CASO 4

Page 63: Tema3 Transparencias.ppt [Modo de compatibilidad]blog.uclm.es/.../2018/07/Tema3_Transparencias.pdf · Ëqglfh ,qwurgxfflyq /hqjxdmh pitxlqd )rupdwrv gh ,qvwuxfflyq 0rgrv gh 'luhfflrqdplhqwr

PUSH: CASO 1El Puntero de Pila (SP) apunta a la cima de la pila. La pila se llena en direcciones crecientes

Tipos de instruccionesLlamadas a procedimientos: la pila

63

Puntero de Pila (SP=1008)100810071006100510041003

PILAINICIAL

Page 64: Tema3 Transparencias.ppt [Modo de compatibilidad]blog.uclm.es/.../2018/07/Tema3_Transparencias.pdf · Ëqglfh ,qwurgxfflyq /hqjxdmh pitxlqd )rupdwrv gh ,qvwuxfflyq 0rgrv gh 'luhfflrqdplhqwr

Tipos de instruccionesLlamadas a procedimientos: la pila

PUSH: CASO 1El Puntero de Pila (SP) apunta a la cima de la pila. La pila se llena en direcciones crecientes

64

PUSH .1: Para escribir en la pila:primero se incrementa el SP

Puntero de Pila (SP=1009)100810071006100510041003

PILA

Page 65: Tema3 Transparencias.ppt [Modo de compatibilidad]blog.uclm.es/.../2018/07/Tema3_Transparencias.pdf · Ëqglfh ,qwurgxfflyq /hqjxdmh pitxlqd )rupdwrv gh ,qvwuxfflyq 0rgrv gh 'luhfflrqdplhqwr

Tipos de instruccionesLlamadas a procedimientos: la pila

PUSH: CASO 1El Puntero de Pila (SP) apunta a la cima de la pila. La pila se llena en direcciones crecientes

65

100810071006100510041003

PILAFINAL

Puntero de Pila (SP=1009)

PUSH .1:y después se introduce el dato en la dirección del SP

DATO

Page 66: Tema3 Transparencias.ppt [Modo de compatibilidad]blog.uclm.es/.../2018/07/Tema3_Transparencias.pdf · Ëqglfh ,qwurgxfflyq /hqjxdmh pitxlqd )rupdwrv gh ,qvwuxfflyq 0rgrv gh 'luhfflrqdplhqwr

Tipos de instruccionesLlamadas a procedimientos: la pila

POP: CASO 1El Puntero de Pila (SP) apunta a la cima de la pila. La pila se llena en direcciones crecientes

66

100810071006100510041003

PILAINICIAL

Puntero de Pila (SP=1009)DATO

Page 67: Tema3 Transparencias.ppt [Modo de compatibilidad]blog.uclm.es/.../2018/07/Tema3_Transparencias.pdf · Ëqglfh ,qwurgxfflyq /hqjxdmh pitxlqd )rupdwrv gh ,qvwuxfflyq 0rgrv gh 'luhfflrqdplhqwr

Tipos de instruccionesLlamadas a procedimientos: la pila

POP: CASO 1El Puntero de Pila (SP) apunta a la cima de la pila. La pila se llena en direcciones crecientes

67

100810071006100510041003

PILA

Puntero de Pila (SP=1009)

POP .2: Para leer de la pila:primero se extrae el dato de ladirección del SP

Page 68: Tema3 Transparencias.ppt [Modo de compatibilidad]blog.uclm.es/.../2018/07/Tema3_Transparencias.pdf · Ëqglfh ,qwurgxfflyq /hqjxdmh pitxlqd )rupdwrv gh ,qvwuxfflyq 0rgrv gh 'luhfflrqdplhqwr

Tipos de instruccionesLlamadas a procedimientos: la pila

POP: CASO 1El Puntero de Pila (SP) apunta a la cima de la pila. La pila se llena en direcciones crecientes

68

100810071006100510041003

PILAFINAL

Puntero de Pila (SP=1008)

POP .2:y después se decrementa el SP

Page 69: Tema3 Transparencias.ppt [Modo de compatibilidad]blog.uclm.es/.../2018/07/Tema3_Transparencias.pdf · Ëqglfh ,qwurgxfflyq /hqjxdmh pitxlqd )rupdwrv gh ,qvwuxfflyq 0rgrv gh 'luhfflrqdplhqwr

PUSH: CASO 2El Puntero de Pila (SP) apunta a la cima de la pila. La pila se llena en direcciones decrecientes

Tipos de instruccionesLlamadas a procedimientos: la pila

69

Puntero de Pila (SP=1008)10081009100A100B100C100D

PILAINICIAL

Page 70: Tema3 Transparencias.ppt [Modo de compatibilidad]blog.uclm.es/.../2018/07/Tema3_Transparencias.pdf · Ëqglfh ,qwurgxfflyq /hqjxdmh pitxlqd )rupdwrv gh ,qvwuxfflyq 0rgrv gh 'luhfflrqdplhqwr

Tipos de instruccionesLlamadas a procedimientos: la pila

PUSH: CASO 2El Puntero de Pila (SP) apunta a la cima de la pila. La pila se llena en direcciones decrecientes

70

PUSH .1: Para escribir en la pila:primero se decrementa el SP

Puntero de Pila (SP=1007)10081009100A100B100C100D

PILA

Page 71: Tema3 Transparencias.ppt [Modo de compatibilidad]blog.uclm.es/.../2018/07/Tema3_Transparencias.pdf · Ëqglfh ,qwurgxfflyq /hqjxdmh pitxlqd )rupdwrv gh ,qvwuxfflyq 0rgrv gh 'luhfflrqdplhqwr

Tipos de instruccionesLlamadas a procedimientos: la pila

PUSH: CASO 2El Puntero de Pila (SP) apunta a la cima de la pila. La pila se llena en direcciones decrecientes

71

10081009100A100B100C100D

PILAFINAL

Puntero de Pila (SP=1007)

PUSH .1:y después se introduce el dato en la dirección del SP

DATO

Page 72: Tema3 Transparencias.ppt [Modo de compatibilidad]blog.uclm.es/.../2018/07/Tema3_Transparencias.pdf · Ëqglfh ,qwurgxfflyq /hqjxdmh pitxlqd )rupdwrv gh ,qvwuxfflyq 0rgrv gh 'luhfflrqdplhqwr

Tipos de instruccionesLlamadas a procedimientos: la pila

POP: CASO 2El Puntero de Pila (SP) apunta a la cima de la pila. La pila se llena en direcciones decrecientes

72

10081009100A100B100C100D

PILAINICIAL

Puntero de Pila (SP=1007)DATO

Page 73: Tema3 Transparencias.ppt [Modo de compatibilidad]blog.uclm.es/.../2018/07/Tema3_Transparencias.pdf · Ëqglfh ,qwurgxfflyq /hqjxdmh pitxlqd )rupdwrv gh ,qvwuxfflyq 0rgrv gh 'luhfflrqdplhqwr

Tipos de instruccionesLlamadas a procedimientos: la pila

POP: CASO 2El Puntero de Pila (SP) apunta a la cima de la pila. La pila se llena en direcciones decrecientes

73

10081009100A100B100C100D

PILA

Puntero de Pila (SP=1007)

POP .2: Para leer de la pila:primero se extrae el dato de ladirección del SP

Page 74: Tema3 Transparencias.ppt [Modo de compatibilidad]blog.uclm.es/.../2018/07/Tema3_Transparencias.pdf · Ëqglfh ,qwurgxfflyq /hqjxdmh pitxlqd )rupdwrv gh ,qvwuxfflyq 0rgrv gh 'luhfflrqdplhqwr

Tipos de instruccionesLlamadas a procedimientos: la pila

POP: CASO 2El Puntero de Pila (SP) apunta a la cima de la pila. La pila se llena en direcciones decrecientes

74

10081009100A100B100C100D

PILAFINAL

Puntero de Pila (SP=1008)

POP .2:y después se incrementa el SP

Page 75: Tema3 Transparencias.ppt [Modo de compatibilidad]blog.uclm.es/.../2018/07/Tema3_Transparencias.pdf · Ëqglfh ,qwurgxfflyq /hqjxdmh pitxlqd )rupdwrv gh ,qvwuxfflyq 0rgrv gh 'luhfflrqdplhqwr

PUSH: CASO 3El Puntero de Pila (SP) apunta fuera de la pila. La pila se llena en direcciones crecientes

Puntero de Pila (SP=1009)

Tipos de instruccionesLlamadas a procedimientos: la pila

75

Puntero de Pila (SP=1009)100810071006100510041003

PILAINICIAL

Page 76: Tema3 Transparencias.ppt [Modo de compatibilidad]blog.uclm.es/.../2018/07/Tema3_Transparencias.pdf · Ëqglfh ,qwurgxfflyq /hqjxdmh pitxlqd )rupdwrv gh ,qvwuxfflyq 0rgrv gh 'luhfflrqdplhqwr

Tipos de instruccionesLlamadas a procedimientos: la pila

PUSH: CASO 3El Puntero de Pila (SP) apunta fuera de la pila. La pila se llena en direcciones crecientes

Puntero de Pila (SP=1009)

76

PUSH .1: Para escribir en la pila:primero se introduce el dato en la dirección del SP

100810071006100510041003

PILA

Puntero de Pila (SP=1009)DATO

Page 77: Tema3 Transparencias.ppt [Modo de compatibilidad]blog.uclm.es/.../2018/07/Tema3_Transparencias.pdf · Ëqglfh ,qwurgxfflyq /hqjxdmh pitxlqd )rupdwrv gh ,qvwuxfflyq 0rgrv gh 'luhfflrqdplhqwr

Tipos de instruccionesLlamadas a procedimientos: la pila

PUSH: CASO 3El Puntero de Pila (SP) apunta fuera de la pila. La pila se llena en direcciones crecientes

Puntero de Pila (SP=100A)

77

1009100810071006100510041003

PILAFINAL

DATO

PUSH .1:y después se incrementa el SP

Page 78: Tema3 Transparencias.ppt [Modo de compatibilidad]blog.uclm.es/.../2018/07/Tema3_Transparencias.pdf · Ëqglfh ,qwurgxfflyq /hqjxdmh pitxlqd )rupdwrv gh ,qvwuxfflyq 0rgrv gh 'luhfflrqdplhqwr

Tipos de instruccionesLlamadas a procedimientos: la pila

POP: CASO 3El Puntero de Pila (SP) apunta fuera de la pila. La pila se llena en direcciones crecientes

Puntero de Pila (SP=100A)

78

1009100810071006100510041003

PILAINICIAL

DATO

Page 79: Tema3 Transparencias.ppt [Modo de compatibilidad]blog.uclm.es/.../2018/07/Tema3_Transparencias.pdf · Ëqglfh ,qwurgxfflyq /hqjxdmh pitxlqd )rupdwrv gh ,qvwuxfflyq 0rgrv gh 'luhfflrqdplhqwr

Tipos de instruccionesLlamadas a procedimientos: la pila

POP: CASO 3El Puntero de Pila (SP) apunta fuera de la pila. La pila se llena en direcciones crecientes

79

POP .2: Para leer de la pila:primero se decrementa el SP

PILA

Puntero de Pila (SP=1009)DATO

100810071006100510041003

Page 80: Tema3 Transparencias.ppt [Modo de compatibilidad]blog.uclm.es/.../2018/07/Tema3_Transparencias.pdf · Ëqglfh ,qwurgxfflyq /hqjxdmh pitxlqd )rupdwrv gh ,qvwuxfflyq 0rgrv gh 'luhfflrqdplhqwr

Tipos de instruccionesLlamadas a procedimientos: la pila

POP: CASO 3El Puntero de Pila (SP) apunta fuera de la pila. La pila se llena en direcciones crecientes

80

PILAFINAL

Puntero de Pila (SP=1009)100810071006100510041003

POP .2:y después se extrae el dato de ladirección del SP

Page 81: Tema3 Transparencias.ppt [Modo de compatibilidad]blog.uclm.es/.../2018/07/Tema3_Transparencias.pdf · Ëqglfh ,qwurgxfflyq /hqjxdmh pitxlqd )rupdwrv gh ,qvwuxfflyq 0rgrv gh 'luhfflrqdplhqwr

PUSH: CASO 4El Puntero de Pila (SP) apunta fuera de la pila. La pila se llena en direcciones decrecientes

Puntero de Pila (SP=1007)

Tipos de instruccionesLlamadas a procedimientos: la pila

81

Puntero de Pila (SP=1007)10081009100A100B100C100D

PILAINICIAL

Page 82: Tema3 Transparencias.ppt [Modo de compatibilidad]blog.uclm.es/.../2018/07/Tema3_Transparencias.pdf · Ëqglfh ,qwurgxfflyq /hqjxdmh pitxlqd )rupdwrv gh ,qvwuxfflyq 0rgrv gh 'luhfflrqdplhqwr

Tipos de instruccionesLlamadas a procedimientos: la pila

PUSH: CASO 4El Puntero de Pila (SP) apunta fuera de la pila. La pila se llena en direcciones decrecientes

Puntero de Pila (SP=1007)

82

PUSH .1: Para escribir en la pila:primero se introduce el dato en la dirección del SP

10081009100A100B100C100D

PILA

Puntero de Pila (SP=1007)DATO

Page 83: Tema3 Transparencias.ppt [Modo de compatibilidad]blog.uclm.es/.../2018/07/Tema3_Transparencias.pdf · Ëqglfh ,qwurgxfflyq /hqjxdmh pitxlqd )rupdwrv gh ,qvwuxfflyq 0rgrv gh 'luhfflrqdplhqwr

Tipos de instruccionesLlamadas a procedimientos: la pila

PUSH: CASO 4El Puntero de Pila (SP) apunta fuera de la pila. La pila se llena en direcciones decrecientes

Puntero de Pila (SP=1006)

83

100710081009100A100B100C100D

PILAFINAL

DATO

PUSH .1:y después se decrementa el SP

Page 84: Tema3 Transparencias.ppt [Modo de compatibilidad]blog.uclm.es/.../2018/07/Tema3_Transparencias.pdf · Ëqglfh ,qwurgxfflyq /hqjxdmh pitxlqd )rupdwrv gh ,qvwuxfflyq 0rgrv gh 'luhfflrqdplhqwr

Tipos de instruccionesLlamadas a procedimientos: la pila

POP: CASO 4El Puntero de Pila (SP) apunta fuera de la pila. La pila se llena en direcciones decrecientes

Puntero de Pila (SP=1006)

84

100710081009100A100B100C100D

PILAINICIAL

DATO

Page 85: Tema3 Transparencias.ppt [Modo de compatibilidad]blog.uclm.es/.../2018/07/Tema3_Transparencias.pdf · Ëqglfh ,qwurgxfflyq /hqjxdmh pitxlqd )rupdwrv gh ,qvwuxfflyq 0rgrv gh 'luhfflrqdplhqwr

Tipos de instruccionesLlamadas a procedimientos: la pila

POP: CASO 4El Puntero de Pila (SP) apunta fuera de la pila. La pila se llena en direcciones decrecientes

85

POP .2: Para leer de la pila:primero se incrementa el SP

PILA

Puntero de Pila (SP=1007)DATO100710081009100A100B100C100D

Page 86: Tema3 Transparencias.ppt [Modo de compatibilidad]blog.uclm.es/.../2018/07/Tema3_Transparencias.pdf · Ëqglfh ,qwurgxfflyq /hqjxdmh pitxlqd )rupdwrv gh ,qvwuxfflyq 0rgrv gh 'luhfflrqdplhqwr

Tipos de instruccionesLlamadas a procedimientos: la pila

POP: CASO 4El Puntero de Pila (SP) apunta fuera de la pila. La pila se llena en direcciones decrecientes

86

PILAFINAL

Puntero de Pila (SP=1007)10081009100A100B100C100D

POP .2:y después se extrae el dato de ladirección del SP