Tema 3: Modelo de máquina elemental Símplez
Dpto. Ingeniería de Sistemas y AutomáticaEscuela Superior de Ingenieros
Universidad de Sevilla
Í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
Í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
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
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
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
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.).
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
Í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
2. Modelo estructural de Símplez
9
215 2
Grado en Ingeniería de Tecnologías de Telecomunicación – Fundamentos de Computadores
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.
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
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.
2. Modelo estructural de Símplez
9
215 2
Grado en Ingeniería de Tecnologías de Telecomunicación – Fundamentos de Computadores
Í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
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
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
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
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.
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
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
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
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
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
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
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
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
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
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
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.
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
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
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
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
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
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
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
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
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
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
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
Í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
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
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
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
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
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.
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.
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
…
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
…
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.
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
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
…
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
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.
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).
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
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
Top Related