tema 3: modelo de máquina elemental símplez

58
Tema 3: Modelo de máquina elemental Símplez Dpto. Ingeniería de Sistemas y Automática Escuela Superior de Ingenieros Universidad de Sevilla

Upload: others

Post on 12-May-2022

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Tema 3: Modelo de máquina elemental Símplez

Tema 3: Modelo de máquina elemental Símplez

Dpto. Ingeniería de Sistemas y AutomáticaEscuela Superior de Ingenieros

Universidad de Sevilla

Page 2: Tema 3: Modelo de máquina elemental Símplez

Índice

1. Componentes de los modelos estructurales. 1.1. Puertas lógicas. 1.2. Circuitos combinacionales. 1.3. Biestables. 1.4. Registros. 1.5. Memorias locales. 1 6 Buses 1.6. Buses.

2. Modelo estructural de Símplez. 3 Modelo funcional de Símplez 3. Modelo funcional de Símplez.

3.1 Representación de datos e instrucciones. 3.2 Repertorio de instrucciones.p 3.3 Representación simbólica: lenguaje ensamblador.

4. Ejemplos.

Grado en Ingeniería de Tecnologías de Telecomunicación – Fundamentos de Computadores

Page 3: Tema 3: Modelo de máquina elemental Símplez

Índice

1. Componentes de los modelos estructurales. 1.1. Puertas lógicas. 1.2. Circuitos combinacionales. 1.3. Biestables. 1.4. Registros. 1.5. Memorias locales. 1 6 Buses 1.6. Buses.

2. Modelo estructural de Símplez. 3 Modelo funcional de Símplez 3. Modelo funcional de Símplez.

3.1 Representación de datos e instrucciones. 3.2 Repertorio de instrucciones.p 3.3 Representación simbólica: lenguaje ensamblador.

4. Ejemplos.

Grado en Ingeniería de Tecnologías de Telecomunicación – Fundamentos de Computadores

Page 4: Tema 3: Modelo de máquina elemental Símplez

1. Componentes de los modelos estructurales

Puertas lógicas:

OR Salida AND Salida

0 0 0

0 1 1

1 0 1

0 0 0

0 1 0

1 0 01 0 1

1 1 1

1 0 0

1 1 1

NOT Salida

XOR Salida

0 0 0 NOT Salida

0 1

1 0

0 1 1

1 0 1

Grado en Ingeniería de Tecnologías de Telecomunicación – Fundamentos de Computadores 4

1 1 0

Page 5: Tema 3: Modelo de máquina elemental Símplez

1. Componentes de los modelos estructurales

Circuitos combinacionales: Están formados por un conjunto de puertas lógicas.Están formados por un conjunto de puertas lógicas. Se supondrá que todos los circuitos combinacionales tardan menos de ½ ciclo de CPU (<50ns en Símplez).

Ejemplos:

Grado en Ingeniería de Tecnologías de Telecomunicación – Fundamentos de Computadores

Page 6: Tema 3: Modelo de máquina elemental Símplez

1. Componentes de los modelos estructurales

Biestables: Son circuitos secuenciales, cuyo comportamiento no solo depende de las 

entradas sino también del estado previo. Cada biestable tiene capacidad para almacenar 1 bit de información. Tienen una entrada CLK que se suele conectar a una señal de reloj. Tipos de biestables según la condición que genera el cambio de estado: Tipos de biestables según la condición que genera el cambio de estado:

Controlados por nivel: Alto. Bajo.

Controlados por flanco:Subida Subida.

Bajada.

Grado en Ingeniería de Tecnologías de Telecomunicación – Fundamentos de Computadores

Page 7: Tema 3: Modelo de máquina elemental Símplez

1. Componentes de los modelos estructurales

Registros: Elementos de almacenamiento formados por biestablesElementos de almacenamiento formados por biestables (tantos como bits de anchura tenga el registro) que comparten la señal de control.

Los valores se cargan en paralelo. La salida refleja el contenido del registro. Su contenido cambia (tomando el valor de la entrada) cuando estando habilitados se da la condición activa de la señal de controlcontrol.

Suelen existir entradas de puesta a cero.Ti Tipos: Registros de desplazamiento (circuitería adicional).Registros contadores (entradas adicionales como inc dec etc )

Grado en Ingeniería de Tecnologías de Telecomunicación – Fundamentos de Computadores

Registros contadores (entradas adicionales como inc,dec,etc.).

Page 8: Tema 3: Modelo de máquina elemental Símplez

1. Componentes de los modelos estructurales

Buses: Son elementos de interconexión tales que: Solamente un componente puede depositar su contenido en elSolamente un componente puede depositar su contenido en el bus en un instante.

Varios componentes pueden leer simultáneamente. Una Unidad de Control debe organizar correctamente las escrituras.

Grado en Ingeniería de Tecnologías de Telecomunicación – Fundamentos de Computadores

Page 9: Tema 3: Modelo de máquina elemental Símplez

Índice

1. Componentes de los modelos estructurales. 1.1. Puertas lógicas. 1.2. Circuitos combinacionales. 1.3. Biestables. 1.4. Registros. 1.5. Memorias locales. 1 6 Buses 1.6. Buses.

2. Modelo estructural de Símplez. 3 Modelo funcional de Símplez 3. Modelo funcional de Símplez.

3.1 Representación de datos e instrucciones. 3.2 Repertorio de instrucciones.p 3.3 Representación simbólica: lenguaje ensamblador.

4. Ejemplos.

Grado en Ingeniería de Tecnologías de Telecomunicación – Fundamentos de Computadores

Page 10: Tema 3: Modelo de máquina elemental Símplez

2. Modelo estructural de Símplez

9

215 2

Grado en Ingeniería de Tecnologías de Telecomunicación – Fundamentos de Computadores

Page 11: Tema 3: Modelo de máquina elemental Símplez

2. Modelo estructural de Símplez

Se van a concretar las ideas del diseño básico de un computador,vistas en el tema anterior, para un ordenador ficticio muyelemental denominado Símplez.

El modelo estructural de Símplez es el de Von Neumann pero condif i l l d i iódiferencias en los elementos de interconexión: La interconexión de elementos se realiza mediante buses:

Bus de datos o Bus D (data): 12 bits Sirve para el intercambio de datos Bus de datos o Bus D (data): 12 bits. Sirve para el intercambio de datosentre memoria, CPU y periféricos.

Bus de direcciones o Bus A (address): 9 bits. La UC escribe direccionesen este bus para indicar donde se lee o se escribe.

Bus de control o Bus C (control): 15 bits. Agrupa las señales de controlenviadas por la UC al resto de dispositivos.enviadas por la UC al resto de dispositivos.

Las unidades de E/S se conectan al bus mediante unos controladores deperiféricos, o controladores de E/S. Realizan funciones parecidas a laUC generan microórdenes específicas a los periféricos que gobiernan

Grado en Ingeniería de Tecnologías de Telecomunicación – Fundamentos de Computadores

UC: generan microórdenes específicas a los periféricos que gobiernan.En Símplez sólo se consideran dos periféricos: teclado y pantalla.

Page 12: Tema 3: Modelo de máquina elemental Símplez

2. Modelo estructural de Símplez

Memoria Principal (MP): Ancho de palabra: 12 bits. Capacidad: 512 palabras. Lectura / escritura y acceso aleatorio.

Unidad Aritmético y Lógica (UAL): Además de la circuitería para realizar las operaciones, dispone deun registro de 12 bits, denominado acumulador (AC), donde sealmacenan sus resultados.

Tras una operación el resultado se almacena automáticamente Tras una operación, el resultado se almacena automáticamente en el registro AC.

El propio AC está conectado a la entrada 1 de la UAL, como uno de los dos posibles operandos.

Grado en Ingeniería de Tecnologías de Telecomunicación – Fundamentos de Computadores

Page 13: Tema 3: Modelo de máquina elemental Símplez

2. Modelo estructural de Símplez

4 operaciones disponibles: Poner a cero la salida (el AC por tanto).

d d Sumar dos operandos. Transferir el operando 2 al acumulador. Decrementar en una unidad el operando 1 (el AC) Decrementar en una unidad el operando 1 (el AC). NO HAY OPERACIÓN DE RESTA.

Unidad de Control (UC): Realiza las mismas funciones que las ( ) qdescritas en el tema anterior.

Dispositivos periféricos Sólo se dispone de una pantalla y teclado alfanumérico. Las transferencias desde y hacia los periféricos se realizan 

di t l i t l dmediante el registro acumulador: AC   Pantalla Teclado AC

Grado en Ingeniería de Tecnologías de Telecomunicación – Fundamentos de Computadores

Teclado  AC Los caracteres se codifican en código ASCII.

Page 14: Tema 3: Modelo de máquina elemental Símplez

2. Modelo estructural de Símplez

9

215 2

Grado en Ingeniería de Tecnologías de Telecomunicación – Fundamentos de Computadores

Page 15: Tema 3: Modelo de máquina elemental Símplez

Índice

1. Componentes de los modelos estructurales. 1.1. Puertas lógicas. 1.2. Circuitos combinacionales. 1.3. Biestables. 1.4. Registros. 1.5. Memorias locales. 1 6 Buses 1.6. Buses.

2. Modelo estructural de Símplez. 3 Modelo funcional de Símplez 3. Modelo funcional de Símplez.

3.1 Representación de datos e instrucciones. 3.2 Repertorio de instrucciones.p 3.3 Representación simbólica: lenguaje ensamblador.

4. Ejemplos.

Grado en Ingeniería de Tecnologías de Telecomunicación – Fundamentos de Computadores

Page 16: Tema 3: Modelo de máquina elemental Símplez

3. Modelo funcional de Símplez

En el nivel de máquina convencional: Convenio de representación para datos e instrucciones:Convenio de representación para datos e instrucciones: sintaxis del modelo funcional.

Repertorio (juego) de instrucciones, con descripción de lo que hace cada una: semántica de las instrucciones.

Símplez: Convenio de representación:

Números enteros no negativos en binario. Caracteres alfanuméricos (código ASCII).

Instrucciones de lenguaje máquina:  Repertorio de 8 instrucciones.

Grado en Ingeniería de Tecnologías de Telecomunicación – Fundamentos de Computadores

Page 17: Tema 3: Modelo de máquina elemental Símplez

3.1 Representación de datos e instrucciones

Representación de números: Números enteros no negativos, representados en binario.Números enteros no negativos, representados en binario. Cada número ocupa una palabra de 12 bits. Rango: 0 a 4095 (212‐1)Rango: 0 a 4095 (2 1) Se numeran los bits de 0 a 11, de derecha a izquierda. Se utilizará, alternativamente, representación en decimal,Se utilizará, alternativamente, representación en decimal, binario, octal y hexadecimal:

2000 (decimal) = 011111010000 (binario) = = 3720 (octal) = 7D0 (hexadecimal)

Representación de caracteres:p Información alfanumérica, útil para comunicación con usuario mediante periféricos.

Grado en Ingeniería de Tecnologías de Telecomunicación – Fundamentos de Computadores

Page 18: Tema 3: Modelo de máquina elemental Símplez

3.1 Representación de datos e instrucciones

Representación de caracteres (…):

Grado en Ingeniería de Tecnologías de Telecomunicación – Fundamentos de Computadores

Page 19: Tema 3: Modelo de máquina elemental Símplez

3.1 Representación de datos e instrucciones

Representación de caracteres (…): Un carácter: ‘a’, ‘9’, ‘%’ [0‐127] código ASCII Un carácter:   a ,  9 ,  %    [0 127]     código ASCII

‘æ’, ‘ß’, ‘▓’   [128‐255]  código ASCII extendido Se necesitan 8 bits para el código ASCII de cualquier carácter Se necesitan 8 bits para el código ASCII de cualquier carácter. Cada carácter ocupa los 8 bits menos significativo de los 12 que forman cada palabra.

Representación de instrucciones: Como en el modelo de Von Neumann, se utilizan dos campos: , pun código de operación de 3 bits y campo de direcciones de 9 bits.

CO CD

3 bits 9 bits

Grado en Ingeniería de Tecnologías de Telecomunicación – Fundamentos de Computadores

Una instrucción ocupa una palabra de memoria.

Page 20: Tema 3: Modelo de máquina elemental Símplez

3.2 Repertorio de instrucciones

8 instrucciones, cuyos códigos de operación y significado son:

CO

Binario Octal MnemónicoBinario Octal Mnemónico

000 0 ST Hacen referencia a memoria para acceder001 1 LD memoria para acceder

a datos001 1 LD

010 2 ADD

011 3 BR Hacen referencia a 011 3 BRmemoria para acceder

a instrucciones100 4 BZ

101 5 CLR101 5 CLRNo hacen referencia

a memoria110 6 DEC

111 7 HALT

Grado en Ingeniería de Tecnologías de Telecomunicación – Fundamentos de Computadores

111 7 HALT

Page 21: Tema 3: Modelo de máquina elemental Símplez

3.2 Repertorio de instrucciones

ST (000‐0) Almacena (STORE) el contenido del acumulador en la palabra de memoria

cuya dirección se indica en el campo CD. Es decir, lleva los 12 bits delacumulador a esa palabra, con lo que desaparece de ella lo que tuvieraanteriormente (pero permaneciendo en el acumulador).p p

LD (001‐1) Carga (LOAD) en el acumulador el contenido de la palabra de memoria cuyo 

contenido se indica en el campo CD. Es decir, es la inversa de la anterior: lleva los 12 bits de la palabra de memoria al acumulador, borrando lo que éste contuviera.

ADD (010‐2) Suma (ADD) al acumulador el contenido de la palabra de memoria cuya

dirección se indica en el campo CD, dejando el resultado en el propioacumulador (y borrando así su contenido previo).

Grado en Ingeniería de Tecnologías de Telecomunicación – Fundamentos de Computadores

Page 22: Tema 3: Modelo de máquina elemental Símplez

3.2 Repertorio de instrucciones

BR (011‐3)( ) Bifurcación (BRANCH) incondicional a la dirección indicada en el campo CD. Le indica a la unidad de control que la siguiente instrucción a ejecutar es la almacenada en la dirección dada en CD.

BZ (100‐4) Bifurcación si el contenido del acumulador es cero, es decir, siel resultado de la última operación que realizó la UAL fue cero.Por tanto actúa como la anterior pero sólo en el caso de quePor tanto, actúa como la anterior, pero sólo en el caso de quetodos los bits del acumulador sean ceros; en caso contrario sesigue con la secuencia normal, y la instrucción no hace nada.

Grado en Ingeniería de Tecnologías de Telecomunicación – Fundamentos de Computadores

g y

Page 23: Tema 3: Modelo de máquina elemental Símplez

3.2 Repertorio de instrucciones

CLR (101‐5)( ) Pone a cero (CLEAR) el acumulador (los 12 bits).

DEC (110‐6) Decrementa en una unidad el contenido del acumulador Decrementa en una unidad el contenido del acumulador,dejando el resultado en él.

HALT (111‐7) Detiene la máquina es decir hace que no se vuelva al paso 1 Detiene la máquina, es decir, hace que no se vuelva al paso 1 en el ciclo de funcionamiento de la Unidad de Control.

Grado en Ingeniería de Tecnologías de Telecomunicación – Fundamentos de Computadores

Page 24: Tema 3: Modelo de máquina elemental Símplez

3.2 Repertorio de instrucciones

Se supondrá que los programas de Símplez estánalmacenados en memoria a partir de la dirección 0.almacenados en memoria a partir de la dirección 0.

La representación de datos e instrucciones junto con la La representación de datos e instrucciones, junto con lafunción de cada una de ellas, definen un lenguaje: ellenguaje máquina.lenguaje máquina.

Grado en Ingeniería de Tecnologías de Telecomunicación – Fundamentos de Computadores

Page 25: Tema 3: Modelo de máquina elemental Símplez

3.2 Repertorio de instrucciones

Ejemplo 1: Sumar el resultado de las posiciones 10 y 11 de memoria y guardar el resultado en la 12.y g

0 1012 LOAD de 101 2013 ADD de 11

2 0014 STORE en 123 7000 HALT

10 0003 Operando 111 0005 Operando 212 0010 R lt d é ó12 0010 Resultado (después de la ejecución)

Grado en Ingeniería de Tecnologías de Telecomunicación – Fundamentos de Computadores

Page 26: Tema 3: Modelo de máquina elemental Símplez

Ejercicio 1

Explicar qué operación hace el siguiente programa de Símplez, sabiendo que la ejecución empieza en la dirección 0.

Dirección(decimal)

Contenido(octal)

la dirección 0. Indicar cómo cambia el contenido de la memoria 

tras la ejecución del mismo.CO (Código de Operación)

0 1010

1 2006

2 2007CO (Código de Operación)

Binario Octal Mnemónico Operación

000 0 ST MP[CD] AC

2 2007

3 0013

4 7000

001 1 LD AC MP[CD]

010 2 ADD AC AC + MP[CD]

011 3 BR CP CD

5 0100

6 0011011 3 BR CP CD

100 4 BZ CP CD si Z = 1

101 5 CLR AC 0

7 0006

8 0003

9 0000110 6 DEC AC AC – 1

111 7 HALT Detiene la CPU

CO CD

9 0000

10 0023

11 0140

Grado en Ingeniería de Tecnologías de Telecomunicación – Fundamentos de Computadores

CO CD3 bits 9 bits

12 3000

Page 27: Tema 3: Modelo de máquina elemental Símplez

Ejercicio 2

Realizar un programa para Símplez que reste tres al contenido de la posición 9 y guarde el resultado en la posición 10.

Dirección(decimal)

Contenido(octal)

en la posición 10.  La ejecución empieza en la dirección 0.

CO (Código de Operación)

0

1

2( g p )

Binario Octal Mnemónico Operación

000 0 ST MP[CD] AC

001 1 LD AC MP[CD]

2

3

4001 1 LD AC MP[CD]

010 2 ADD AC AC + MP[CD]

011 3 BR CP CD

5

6

100 4 BZ CP CD si Z = 1

101 5 CLR AC 0

110 6 DEC AC AC 1

7

8

9110 6 DEC AC AC – 1

111 7 HALT Detiene la CPU

CO CD

9

10

11

Grado en Ingeniería de Tecnologías de Telecomunicación – Fundamentos de Computadores

CO CD3 bits 9 bits

12

Page 28: Tema 3: Modelo de máquina elemental Símplez

3.2 Repertorio de instrucciones

Ejemplo 2: Sumar los 10 primeros términos de la serie deFibonacci.

PEN=0; ULT=1;

0: n=0

PEN=0; ULT=1;SUM=1; CONT=8;MIENTRAS (CONT != 0)0: n=0

t n =  1: n=1t 2 + t : n≥2

( )SIG = PEN + ULT;SUM = SUM + SIG;t n‐2 + t n‐1: n≥2PEN = ULT;ULT = SIG;CONT = CONT – 1;

FIN MIENTRAS

Grado en Ingeniería de Tecnologías de Telecomunicación – Fundamentos de Computadores

Page 29: Tema 3: Modelo de máquina elemental Símplez

3.2 Repertorio de instrucciones

0 3010 Salta a 8

1 0001

15 1004 AC <- PENSIG =

16 2005 AC< AC+ULT1 0001

2 0010

3 CONT

PEN + ULT16 2005 AC<- AC+ULT

17 0006 SIG <- AC

18 2007 AC<-AC+SUM SUM = 4 PEN

5 ULT

6 SIG

SUM + SIG19 0007 SUM <- AC

20 1005 AC <- ULTPEN = ULT

21 0004 PEN <- AC6 SIG

7 SUM

8 5000 AC<-0PEN = 0

21 0004 PEN <- AC

22 1006 AC <- SIG ULT = SIG

23 0005 ULT<- ACPEN 0

9 0004 PEN <- AC

10 1001 AC <- 1ULT = 1

11 0005 ULT <- AC

24 1003 AC <- CONTCONT = CONT - 125 6000 AC <- AC – 1

26 0003 CONT <- AC11 0005 ULT < AC

12 0007 SUM <- AC SUM = 1

13 1002 AC <- 8CONT = 8

26 0003 CONT < AC

27 4035 Salta a 29 si 0

28 3017 Salta a 15

Grado en Ingeniería de Tecnologías de Telecomunicación – Fundamentos de Computadores

14 0003 CONT <- AC 29 7000 HALT

Page 30: Tema 3: Modelo de máquina elemental Símplez

3.3 Representación simbólica: leng. ensamblador

Como se ha visto, el programa ejecutable se encuentra enmemoria, comenzando en la posición 0 y de manera consecutiva.

La representación numérica (ya sea binaria, octal o hexadecimal)es muy engorrosa, por lo que es necesario cierto nivel deprocesamiento simbólico que facilite la programación.

Se define un lenguaje simbólico muy elemental, denominadol j bl d l d i t ió d l jlenguaje ensamblador, en el que cada instrucción de lenguajemáquina se corresponde con una instrucción de este lenguaje.

Existirá un programa traductor (denominado tambiénensamblador) que convertirá las instrucciones en lenguaje

Grado en Ingeniería de Tecnologías de Telecomunicación – Fundamentos de Computadores

ensamblador) que convertirá las instrucciones en lenguajesimbólico al código máquina correspondiente.

Page 31: Tema 3: Modelo de máquina elemental Símplez

3.3.1 Lenguaje ensamblador

Sintaxis Se escribe una instrucción por línea.Se escribe una instrucción por línea. El código de operación de la instrucción se indica con elmnemónico: ST, LD, ADD, BR, BZ, CLR, DEC, HALT.

En las instrucciones que hacen referencia a memoria el campode direcciones se expresa en decimal: ST /310 Ejemplo:

0 1012 LD /100 1012 LD /101 2013 ADD /11

2 0014 ST /12/3 7000 HALT

Grado en Ingeniería de Tecnologías de Telecomunicación – Fundamentos de Computadores

Page 32: Tema 3: Modelo de máquina elemental Símplez

3.3.1 Lenguaje ensamblador

Sintaxis (…) Se permite el uso de etiquetas. Éstas son nombres simbólicosSe permite el uso de etiquetas. Éstas son nombres simbólicosque se dan a posiciones de memoria. Sus principales ventajasson: No es necesario conocer donde se cargará el programa. No es necesario revisar las instrucciones con referencia adirecciones en caso de modificaciones del programadirecciones en caso de modificaciones del programa.

15 1004 LD /4 BUCLE LD /PEN

16 2005 ADD /5 ADD /ULT6 005 /5 /U

17 0006 ST /6 ST /SIG

… … …

27 4035 BZ /29 BZ /FIN27 4035 BZ /29 BZ /FIN

28 3017 BR /15 BR /BUCLE

29 7000 HALT FIN HALT

Grado en Ingeniería de Tecnologías de Telecomunicación – Fundamentos de Computadores

En este ejemplo se considera la siguiente correspondencia entre etiquetas y posiciones de memoria: PEN = 4 ULT = 5 SIG = 6

Page 33: Tema 3: Modelo de máquina elemental Símplez

3.3.1 Lenguaje ensamblador

ORG <dir> (…)

0 50001 0004

ORG 0CLR

1 0004

2 …? 7000

ST /PEN…

? 7000…

100 1004

HALTORG 100LD /PEN 100 1004

101 2005…

LD /PENADD /ULT…

En este ejemplo se considera la siguiente correspondencia entre etiquetas y posiciones de i PEN 4 ULT 5

Grado en Ingeniería de Tecnologías de Telecomunicación – Fundamentos de Computadores

memoria: PEN = 4 ULT = 5

Page 34: Tema 3: Modelo de máquina elemental Símplez

3.3.1 Lenguaje ensamblador

DATA <valor>

I d l é i i ió d i S Introduce un valor numérico en una posición de memoria. Seutiliza habitualmente para almacenar constantes en memoria. Seutilizan las comillas simples para representar caracteres.p p p

51 0001 (1)ORG 51DATA 1

52 0010 (8)

53 0141 (97)

DATA 1DATA 8DATA ‘a’

54 0101 (65)…

DATA ‘A’…

Grado en Ingeniería de Tecnologías de Telecomunicación – Fundamentos de Computadores

Page 35: Tema 3: Modelo de máquina elemental Símplez

3.3.1 Lenguaje ensamblador

RES <tam>

R i i ú l ñ ifi d S Reserva espacio en memoria, según el tamaño especificado. Sesuele utilizar en combinación con etiquetas.

ORG 46 46 0000 (CONT)47 0000 (PEN)

48 0000 (TABLA)

ORG 46CONT RES 1PEN RES 1 48 0000 (TABLA)

49 00000004

PEN RES 1 TABLA RES 2

DATA 4 0004

……

Grado en Ingeniería de Tecnologías de Telecomunicación – Fundamentos de Computadores

Page 36: Tema 3: Modelo de máquina elemental Símplez

3.3.1 Lenguaje ensamblador

END Indica el final del código fuente, el final de la traducción. NODEBE CONFUNDIRSE CON HALT.

ORG 00 10121 2013

ORG 0LD /OPER1

ADD /OPER22 00143 7000

/ST /RESULHALT

...10 000311 0005

ORG 10OPER1 DATA 3

11 000512 0000 (valor antes de

la ejecución)

OPER2 DATA 5RESUL RES 1

END

Grado en Ingeniería de Tecnologías de Telecomunicación – Fundamentos de Computadores

… j )END

Page 37: Tema 3: Modelo de máquina elemental Símplez

3.3.1 Lenguaje ensamblador

COMENTARIOS Sirven para que el código ensamblador resulte más legible y quedep q g g y q

documentado. Se considera comentario todo lo escrito a la derecha delcarácter ‘;’.

ORG 0

LD /OPER1 ; Se carga el primer operando

ADD /OPER2 ; Se suma el segundoADD /OPER2 ; Se suma el segundo

ST /RESUL ; Almacenamos el resultado

HALT

ORG 10 ; Se cargan los datos a partir

; de la posición 10

OPER1 DATA 3

OPER2 DATA 5

RESUL RES 1

Grado en Ingeniería de Tecnologías de Telecomunicación – Fundamentos de Computadores

RESUL RES 1

END

Page 38: Tema 3: Modelo de máquina elemental Símplez

3.3.1 Lenguaje ensamblador

0 3010 BR /INI 15 1004 BUCLE LD /PEN

Ejemplo 2: Sumar los 10 primeros términos de la serie de Fibonacci (ensamblador)

1 0001 UNO DATA 1

2 0010 OCHO DATA 8

3 CONT CONT RES 1

16 2005 ADD /ULT

17 0006 ST /SIG

18 2007 ADD /SUM3 CONT CONT RES 1

4 PEN PEN RES 1

5 ULT ULT RES 1

18 2007 ADD /SUM

19 0007 ST /SUM

20 1005 LD /ULT

6 SIG SIG RES 1

7 SUM SUM RES 1

8 5000 CLR

21 0004 ST /PEN

22 1006 LD /SIG

23 0005 ST /ULT8 5000 CLR

9 0004 ST /PEN

10 1001 LD /UNO

23 0005 ST /ULT

24 1003 LD /CONT

25 6000 DEC

11 0005 ST /ULT

12 0007 ST /SUM

13 1002 LD /OCHO

26 0003 ST /CONT

27 4035 BZ /FIN

28 3017 BR /BUCLE

Grado en Ingeniería de Tecnologías de Telecomunicación – Fundamentos de Computadores

13 1002 LD /OCHO

14 0003 ST /CONT

28 3017 BR /BUCLE

29 7000 FIN HALT

Page 39: Tema 3: Modelo de máquina elemental Símplez

3.3.2 Fases de ensamblado

Los programas se escriben en lenguaje ensamblador,almacenándose típicamente en un fichero de texto.

El programa traductor (también denominado ensamblador) seencarga de traducir el lenguaje simbólico a código máquina, que

l fi l l i d l des el que finalmente se carga en la memoria del computador y seejecuta.

Programa Fuente(leng. ensamblador)

ENSAMBLADOR(traductor)

Programa Objeto(leng. máquina)

Si el programa traductor convierte código para una máquinadistinta a aquella en la que se ejecuta se denomina ensambladordistinta a aquella en la que se ejecuta, se denomina ensambladorcruzado. Es el caso de Símplez. Si convierte código para la mismamáquina se denomina ensamblador residente.

Grado en Ingeniería de Tecnologías de Telecomunicación – Fundamentos de Computadores

q

Page 40: Tema 3: Modelo de máquina elemental Símplez

3.3.2 Fases de ensamblado

El proceso de ensamblado se puede realizar en una o dos pasadas. Ensamblador de una pasada: todo se realiza con una única lecturap

del programa fuente. No permite referencias a memoria haciaadelante.

ORG 0 ORG 0ORG 0

INCORRECTO INCORRECTO CORRECTO

LD /OPER1

ADD /OPER2

ST /RESUL

BR /4

OPER1 DATA 3

OPER2 DATA 5

BR /INI

OPER1 DATA 3

OPER2 DATA 5ST /RESUL

HALT

ORG 10

OPER2 DATA 5

RESUL RES 1

LD /OPER1

OPER2 DATA 5

RESUL RES 1

INI LD /OPER1

OPER1 DATA 3

OPER2 DATA 5

RESUL RES 1

ADD /OPER2

ST /RESUL

HALT

ADD /OPER2

ST /RESUL

HALT

Grado en Ingeniería de Tecnologías de Telecomunicación – Fundamentos de Computadores

RESUL RES 1

END

HALT

END

HALT

END

Page 41: Tema 3: Modelo de máquina elemental Símplez

3.3.2 Fases de ensamblado

Ensamblador de dos pasadas: se realizan dos lecturas del programa fuente. En la primera únicamente se genera la tabla de etiquetas. En la segunda se realiza la traducción del código completo con la ayuda de la tabla de etiquetas. Permite, por tanto referencias a memoria hacia adelantetanto, referencias a memoria hacia adelante.

0 1012

ORG 0

LD /OPER1 Paso 1 Paso 2 0 1012

1 2013

2 0014

/

ADD /OPER2

ST /RESUL

HALT

Paso 1

3 7000

10 0003

Etiqueta Decimal Octal

OPER1 10 12

OPER2 11 13

HALT

ORG 10

OPER1 DATA 3

11 0005

12 0000

OPER2 11 13

RESUL 12 14OPER2 DATA 5

RESUL RES 1

ENDTabla de etiquetas

Grado en Ingeniería de Tecnologías de Telecomunicación – Fundamentos de Computadores

…ENDq

Page 42: Tema 3: Modelo de máquina elemental Símplez

Índice

1. Componentes de los modelos estructurales. 1.1. Puertas lógicas. 1.2. Circuitos combinacionales. 1.3. Biestables. 1.4. Registros. 1.5. Memorias locales. 1 6 Buses 1.6. Buses.

2. Modelo estructural de Símplez. 3 Modelo funcional de Símplez 3. Modelo funcional de Símplez.

3.1 Representación de datos e instrucciones. 3.2 Repertorio de instrucciones.p 3.3 Representación simbólica: lenguaje ensamblador.

4. Ejemplos.

Grado en Ingeniería de Tecnologías de Telecomunicación – Fundamentos de Computadores

Page 43: Tema 3: Modelo de máquina elemental Símplez

4. Ejemplos

Ejemplo 3: Sumar 100 números que se encuentran almacenados entre las posiciones 50 y 149, almacenando el resultado en la posición 150 de memoria.

Solución NO admisible Solución admisible: Automodificación de código

ORG 0

LD /50

Solución NO admisible Solución admisible: Automodificación de código

ORG 0

0 BR /2 0 3002LD /50

ADD /51

ADD /52

1 DATA 1

2 LD /150

3 ADD /50

1 0001

2 1226

3 2062ADD /53

ADD /149

3 ADD /50

4 ST /150

5 LD /3

3 2062

4 0226

5 1003ADD /149

ST /150

HALT

6 ADD /1

7 ST /3

6 2001

7 0003

Grado en Ingeniería de Tecnologías de Telecomunicación – Fundamentos de Computadores

? BR /2 ? 3002

Page 44: Tema 3: Modelo de máquina elemental Símplez

4. Ejemplos

Ejemplo 3: Sumar 100 números que se encuentran almacenados entrelas posiciones 50 y 149, almacenando el resultado en la posición 150 dememoria.

óPseudocódigo

SUMA 0SUMA = 0;CONT = 100;MIENTRAS (CONT ! 0)MIENTRAS (CONT != 0)

CONT ‐ ‐;SUMA SUMA + TAB[CONT];SUMA = SUMA + TAB[CONT];

FIN MIENTRAS

Grado en Ingeniería de Tecnologías de Telecomunicación – Fundamentos de Computadores

Page 45: Tema 3: Modelo de máquina elemental Símplez

4. Ejemplos

ORG 0

Ejemplo 3 (…)Ensamblador

BR /INI

NTAB DATA 100

CONT RES 1

LD /CONT ; CONT =

DEC ; = CONT - 1CONT RES 1

INI CLR ; SUMA = 0

ST /SUMA

DEC ; = CONT - 1

ST /CONT

BR /BUCLE

LD /NTAB ; CONT = 100

ST /CONT

BUCLE BZ /FIN

FIN HALT

ORG 50BUCLE BZ /FIN

LD /SUMA ; SUMA = SUMA +

MODIF ADD /FTAB ; + TAB[CONT]

ORG 50

TABLA DATA 24

DATA 19 ; Vector de 100

ST /SUMA

LD /MODIF ; Modificación de la

DEC ; instrucción

… ; Elementos

FTAB DATA 32

SUMA RES 1

Grado en Ingeniería de Tecnologías de Telecomunicación – Fundamentos de Computadores

DEC ; instrucción

ST /MODIF ; ADD /FTAB END

Page 46: Tema 3: Modelo de máquina elemental Símplez

4. Ejemplos

Ejemplo 3 (…)

Se ha visto la técnica de automodificación de código paragenerar una dirección de memoria que se va incrementando.

La automodificación de código no es deseable, en general, enprogramación.

Se verá, en una versión más avanzada de la máquina, como sepuede resolver el problema de la indexación de una tabla deotra formaotra forma.

Grado en Ingeniería de Tecnologías de Telecomunicación – Fundamentos de Computadores

Page 47: Tema 3: Modelo de máquina elemental Símplez

4. Ejemplos

Uso de subprogramas (subrutinas): En varios puntos de un programa puede

necesitarse hacer na misma operaciónnecesitarse hacer una misma operación(un conjunto de instrucciones) condistintos operandos.

Puede utilizarse como ejemplo elprograma presentado anteriormente:suponer que se desea sumar 4 secuenciasp qde 100 números. En lugar de repetir lasmismas instrucciones 4 veces, cambiandoúnicamente la dirección donde está latabla y donde se almacena el resultado,podría hacerse un subprograma al que sele indicara la dirección de inicio de la tablale indicara la dirección de inicio de la tablay la dirección del resultado.

La llamada a subprograma en el lenguajebl d li

Grado en Ingeniería de Tecnologías de Telecomunicación – Fundamentos de Computadores

ensamblador se realiza con unainstrucción de salto.

Page 48: Tema 3: Modelo de máquina elemental Símplez

4. Ejemplos

Uso de subprogramas (subrutinas):

Paso de parámetros Paso de parámetros Es necesario que el programa principal deje en algún lugar los datos(parámetros de entrada) que el subprograma necesita. De la misma

l b d b d it l lt d ( á t dmanera, el subprograma debe depositar los resultados (parámetros desalida) para que los recoja el programa principal.

Para el paso de parámetros existen diversas técnicas: Para el paso de parámetros existen diversas técnicas: Por registro Por dirección fija de memoria Por pila Por secuencia de llamada

P ió d l di ió d Preservación de la dirección de retorno Cuando termina de ejecutarse el subprograma, la ejecución debecontinuar por la instrucción siguiente a la llamada. Este valor es distinto

Grado en Ingeniería de Tecnologías de Telecomunicación – Fundamentos de Computadores

p gpara cada llamada.

Page 49: Tema 3: Modelo de máquina elemental Símplez

4. Ejemplos

BR /INI

SALTO BR /0

CTEDR1 DATA 40CTEDR1 DATA 40

CTEDR2 DATA 60

INI …

LD /SALTO ; Prepara

ADD /CTEDR1 ; dirección

ST /FINRUT ; retorno 1RUT LD /POS1

ST /FINRUT ; retorno 1

BR /RUT ; Llamada a rutina

[40] DIRRET1 ST /VAR1

FINRUT

LD /SALTO ; Prepara

ADD /CTEDR2 ; dirección/ ;

ST /FINRUT ; retorno 2

BR /RUT ; Llamada a rutina

[60] DIRRET2 ST /VAR2

Grado en Ingeniería de Tecnologías de Telecomunicación – Fundamentos de Computadores

[60] DIRRET2 ST /VAR2

Page 50: Tema 3: Modelo de máquina elemental Símplez

4. Ejemplos

BR /INI

SALTO BR /0

CTEDR1 DATA DIRRET1

Uso de etiquetas, sin necesidad de conocer previamente los números exactos

d l d dCTEDR1 DATA DIRRET1

CTEDR2 DATA DIRRET2

INI …

correspondientes a las direcciones deretorno

LD /SALTO ; Prepara

ADD /CTEDR1 ; dirección

ST /FINRUT ; retorno 1ST /FINRUT ; retorno 1

BR /RUT ; Llamada a rutina

DIRRET1 ST /VAR1

LD /SALTO ; Prepara

ADD /CTEDR2 ; dirección/ ;

ST /FINRUT ; retorno 2

BR /RUT ; Llamada a rutina

DIRRET2 ST /VAR2

Grado en Ingeniería de Tecnologías de Telecomunicación – Fundamentos de Computadores

DIRRET2 ST /VAR2

Page 51: Tema 3: Modelo de máquina elemental Símplez

4. Ejemplos

Ejemplo 4: Subprograma para restar Codificar una subrutina que haga la resta de dos números. El paso de

parámetros se debe hacer de la siguiente forma: El primer parámetro (minuendo) se pasará por registro empleando elacumulador (AC).

El segundo parámetro (sustraendo) se pasará por dirección fija de memoriaempleando la dirección de etiqueta SUSTR.

El resultado será devuelto por registro (en el acumulador) El resultado será devuelto por registro (en el acumulador).

Codificar un programa principal que haga dos llamadas a esta subrutina deresta: <Principal>

E = Resta(B, A);…

F = Resta(D, C);

Al terminar la codificación, comprobar qué ocurre: Si el sustraendo vale 0.

( , );…

Grado en Ingeniería de Tecnologías de Telecomunicación – Fundamentos de Computadores

Si minuendo < sustraendo.

Page 52: Tema 3: Modelo de máquina elemental Símplez

4. Ejemplos

Ejemplo 4: Subprograma para restar

Pseudocódigo Subrutina

RESULT = <Resta> (MINU, SUSTR)RESULT = MINU;Mientras (SUSTR != 0)

SUSTR - -;RESULT ;RESULT - -;

Fin MientrasDevuelve RESULT;;

<Fin>

Grado en Ingeniería de Tecnologías de Telecomunicación – Fundamentos de Computadores

Page 53: Tema 3: Modelo de máquina elemental Símplez

4. Ejemplos

ORG 0 LD /SALTO ; Se prepara

ADD /CTEDR1 ; la dirección

Ejemplo 4: Subprograma para restar

BR /INIPRG

A DATA 2

B DATA 6

ADD /CTEDR1 ; la dirección

ST /FINRUT ; de retorno

LD /B ; 2º parametro

C DATA 4

D DATA 7

E RES 1

BR /RESTA ; Llamada rutina

DRET1 ST /E ; se toma el result

E RES 1

F RES 1

SALTO BR /0

LD /C : Se pasa un

ST /SUSTR ; parámetro

CTEDR1 DATA DRET1

CTEDR2 DATA DRET2

INIPRG

LD /SALTO ; Se prepara

ADD /CTEDR2 ; la dirección

ST /FINRUT ; de retornoINIPRG …

LD /A : Se pasa un

ST /SUSTR ; parámetro

S / U ; de eto o

LD /D ; 2º parametro

BR /RESTA ; Llamada rutina

DRET2 ST /F l l

Grado en Ingeniería de Tecnologías de Telecomunicación – Fundamentos de Computadores

DRET2 ST /F ; se toma el result

Page 54: Tema 3: Modelo de máquina elemental Símplez

4. Ejemplos

RESTA BR /INIRUT

Ejemplo 4: Subprograma para restar

SUSTR RES 1

RESULT RES 1

INIRUT ST /RESULT ; RESULT MINUINIRUT ST /RESULT ; RESULT = MINU

BUCLE LD /SUSTR

BZ /DEVUELVE ; Mientras (SUSTR != 0)

DEC ; SUSTR - -;

ST /SUSTR

LD /RESULTLD /RESULT

DEC ; RESULT - -;

ST /RESULT

BR /BUCLE ; Fin Mientras

DEVUELVE LD /RESULT ; Devuelve RESULT

FINRUT BR /0

Grado en Ingeniería de Tecnologías de Telecomunicación – Fundamentos de Computadores

FINRUT BR /0

Page 55: Tema 3: Modelo de máquina elemental Símplez

4. Ejemplos

Comunicaciones con periféricos Direccionamiento:

Se les asigna determinadas direcciones:509‐PANTALLA, 511‐TECLADO.

ST /509: Los 8 bits menos significativos/ gdel AC se llevan a la pantalla, donde soninterpretados como el código ASCII de uncarácter, el cual es mostrado.

LD /511: Se recibe en el AC los 8 bitscorrespondientes al código ASCII delcarácter que se ha pulsado.

Gestión de periféricos: Antes de escribir hay que asegurarsede que el dato anterior ya fuede que el dato anterior ya fueprocesado y de que la pantalla estápreparada para uno nuevo.

Antes de leer un carácter hay que

Grado en Ingeniería de Tecnologías de Telecomunicación – Fundamentos de Computadores

Antes de leer un carácter hay queesperar a que sea pulsada una tecla.

Page 56: Tema 3: Modelo de máquina elemental Símplez

4. Ejemplos

Comunicaciones con periféricos: Control de periféricos por espera activa:

Escritura en pantalla Lectura de teclado

[d] LD /508[d+1] BZ /d

[d] LD /510[d+1] BZ /d[d+1] BZ /d

[d+2] LD /DATO[d+3] ST /509

[d+1] BZ /d[d+2] LD /511[d+3] ST /DATO

La espera activa no es adecuada si hay que realizar otras tareas.

[ ] / [ ] /

Existen alternativas como los mecanismos de interrupciones y acceso directo a memoria (DMA).

Al comenzar el programa, hay que inicializar el estado de la pantalla a 1

Grado en Ingeniería de Tecnologías de Telecomunicación – Fundamentos de Computadores

Al comenzar el programa, hay que inicializar el estado de la pantalla a 1 (dirección 508).

Page 57: Tema 3: Modelo de máquina elemental Símplez

4. Ejemplos

Ejercicio 3: Recepción de caracteres del teclado

Realizar un programa que lea por teclado 10 caracteres y los almacene a partir de la dirección de etiqueta VECTOR en memoria.

Antes de guardar cada carácter en memoria, el programa debe verificar si dicho carácter es el ‘a’ y en tal caso debe sustituirlo por ‘L’.Considerar la posibilidad de re tili ar la s br tina de resta Considerar la posibilidad de reutilizar la subrutina de resta anterior.

Grado en Ingeniería de Tecnologías de Telecomunicación – Fundamentos de Computadores

Page 58: Tema 3: Modelo de máquina elemental Símplez

5. Conclusiones

Se echan en falta algunas instrucciones: Resta. Saltos condicionales más variados (instrucciones de comparación). Facilidades para el uso de subprogramas.

No tenemos números negativos.

Poca memoria (508 palabras).

No podemos recorrer zonas de memoria (faltaría un registro índice).

I/O únicamente por espera activa I/O únicamente por espera activa.

Grado en Ingeniería de Tecnologías de Telecomunicación – Fundamentos de Computadores