Publicado el 27 de Julio del 2019
1.682 visualizaciones desde el 27 de Julio del 2019
204,0 KB
81 paginas
Creado hace 13a (08/09/2010)
Estructura de computadores
Programación en Ensamblador
LENGUAJE MÁQUINA
• Juego de instrucciones. Formatos
• Tipos de datos
• Modos de direccionamiento
• Tipos de instrucciones
ARQUITECTURA DEL 88110
• Banco de Registros
• Memoria principal
• Modos de direccionamiento
• Juego de instrucciones
LENGUAJE ENSAMBLADOR
• Sintaxis
• Mnemónicos y etiquetas
• Instrucciones y pseudoinstrucciones
• Macros
PROGRAMACIÓN EN ENSAMBLADOR
• Estructuras de datos: - Vectores y Matrices
• Subrutinas: - Paso de parámetros
- Listas
- Marco de pila
- Recursividad
Dpto. Arquitectura y Tecnología de Sistemas Informáticos.
Universidad Politécnica de Madrid
Problemas y tutorías
1
Programación en Ensamblador
Documentación
1. Transparencias del tema (web)
2. Descripción del emulador 88110 (web+publicaciones)
3. Subrutinas: paso de parámetros y marco de pila (web+publicaciones)
4. Enunciados de problemas (web+publicaciones)
http://www.datsi.fi.upm.es/docencia/Estructura_09
Fundamentos de los computadores
Pedro de Miguel, Paraninfo/Thomson-2006 (capítulo 13)
Estructura de computadores: problemas y soluciones
García Clemente y otros, RAMA-2000 (capítulo 2)
Estructura de computadores: problemas resueltos
García Clemente y otros, RAMA-2006 (capítulo 3)
Solución de problemas:
http://www.datsi.fi.upm.es/88110
Dpto. Arquitectura y Tecnología de Sistemas Informáticos.
Universidad Politécnica de Madrid
2
Lenguaje Máquina
• Programa está compuesto por datos e instrucciones almacenados en
memoria
•Instrucción máquina: Es la función básica elemental que puede ejecutar
un computador.
•Son cadenas de 1 y 0 (almacenadas en binario) y particulares de cada
computador
•Propiedades:
•Realizan una única y sencilla función
•Tienen un número fijo de operandos
•Autocontenidas: Contienen todo lo necesario para su ejecución
(operación, operandos, dir. Resultado y dir. Sig instrucción)
Dpto. Arquitectura y Tecnología de Sistemas Informáticos.
Universidad Politécnica de Madrid
3
Juego de instrucciones
• Conjunto de instrucciones que ejecuta directamente el computador.
•La codificación de las instrucciones deben encajar en pocos formatos.
•Formato de instrucción: Representación de una instrucción y
especificación de cada campo:
•Código de operación
•Operandos (direcciones)
Dpto. Arquitectura y Tecnología de Sistemas Informáticos.
Universidad Politécnica de Madrid
4
Tipos de datos
• Tipos de datos que maneja una instrucción:
•Palabras: Es el tamaño privilegiado del computador (4 bytes)
•Medias palabras (2 bytes)
•Bytes: Cadenas de caracteres.
•Acceso a memoria:
•Direccionable a nivel de palabra. Cada palabra tiene una dirección.
•Direccionable a nivel de byte. Cada byte de memoria tiene una
dirección.
•Dos palabras consecutivas están separadas por el tamaño en
bytes de la palabra.
•Es el utilizado habitualmente.
Dpto. Arquitectura y Tecnología de Sistemas Informáticos.
Universidad Politécnica de Madrid
5
Tipos de datos
•Alineamiento a palabra. La dirección para el acceso a palabra debe ser
múltiplo del tamaño de la misma.
•Ordenación de los bytes de una palabra en memoria.
•Little-Endian: Byte menos significativo de una palabra en la dirección
menos significativa.
•Big-Endian: Byte menos significativo de una palabra en la dirección
más significativa.
Palabra: 0x10203040
Little-Endian
100
40
101
30
102
20
103
10
Big-Endian
100
10
101
20
102
30
103
40
Dpto. Arquitectura y Tecnología de Sistemas Informáticos.
Universidad Politécnica de Madrid
6
Modos de direccionamiento
•Forma en la que se accede a una instrucción o dato.
•OBJETO: Instrucción o dato al que se desea acceder
•DIRECCIÓN: Lugar en el que reside el objeto. Puede estar almacenado
en:
•La instrucción.
•Registro
•Memoria
Dpto. Arquitectura y Tecnología de Sistemas Informáticos.
Universidad Politécnica de Madrid
7
Direccionamiento Inmediato
• El objeto está contenido en la propia instrucción.
Instrucción
Objeto
• ADD .R1,#4
R1 R1 + 4
Dpto. Arquitectura y Tecnología de Sistemas Informáticos.
Universidad Politécnica de Madrid
8
Direccionamiento Directo
• El objeto no está contenido en la propia instrucción. La instrucción
contiene el lugar (dirección) donde está almacenado el objeto.
•ABSOLUTO: Si la instrucción contiene la dirección completa del objeto
•RELATIVO: Si la instrucción contiene la dirección del objeto de forma
parcial. Todos los direccionamientos relativos lo son a memoria.
Dpto. Arquitectura y Tecnología de Sistemas Informáticos.
Universidad Politécnica de Madrid
9
Direccionamiento Directo
Absoluto a Registro
• El objeto del direccionamiento está contenido en un registro. La
instrucción contiene el registro que contiene el objeto del direccionamiento.
•ADD .R4,.R5
R4 R4+R5
Instrucción
D
Registros
Objeto
Dpto. Arquitectura y Tecnología de Sistemas Informáticos.
Universidad Politécnica de Madrid
10
Direccionamiento Directo
Absoluto a Memoria
• El objeto del direccionamiento está contenido en una dirección de
memoria. La instrucción contiene la dirección completa de memoria que
contiene el objeto del direccionamiento.
•LD .R4,/1000
R4 M(1000)
Instrucción
D
Memoria
Objeto
Dpto. Arquitectura y Tecnología de Sistemas Informáticos.
Universidad Politécnica de Madrid
11
Direccionamientos Relativos
• El objeto del direccionamiento está contenido en una dirección de
memoria. La instrucción contiene la dirección especificada en “partes”.
•Dependiendo de cómo se especifique la dirección:
•Relativo a registro base
•Relativo a PC
•Relativo a registro índice
Dpto. Arquitectura y Tecnología de Sistemas Informáticos.
Universidad Politécnica de Madrid
12
Direccionamiento Relativo
a Registro Base
• La dirección de memoria viene especificada en dos partes:
•Registro Base: Registro de propósito específico o general que
contiene una dirección a memoria.
•Desplazamiento: Valor entero con signo.
•La dirección efectiva se calcula:
Dir_Efectiva = Registro_Base + Desplazamiento
Dpto. Arquitectura y Tecnología de Sistemas Informáticos.
Universidad Politécnica de Madrid
13
Direccionamiento Relativo
• LD .R1,#4[.R7]
a Registro Base
R1 MEM(R7+4)
•El registro base se carga una dirección de memoria que contiene un
conjunto de datos a los que se accede conociendo su posición relativa
frente al comienzo de dicha zona: Estructuras de datos.
•El rango de direcciones al
que se puede acceder está
limitado por el tamaño del
desplazamiento.
DR
desp
Instrucción
Registros CPU
+
D
i
r
.
E
f
e
c
t
i
v
a
Memoria
Objeto
Dpto. Arquitectura y Tecnología de Sistemas Informáticos.
Universidad Politécnica de Madrid
14
Direccionamiento Relativo
a PC
• Es un direccionamiento relativo a registro base en el que el registro base
es el PC.
•El objeto de este direccionamiento suele ser direccionar instrucciones.
•Permite alcanzar instrucciones “cercanas” a la que se está ejecutando.
•Ejecución de saltos
“cortos”
•BR $10
PC PC + 10
Instrucción
D
i
r
.
E
f
e
c
t
i
v
a
Memoria
Objeto
PC
+
Dpto. Arquitectura y Tecnología de Sistemas Informáticos.
Universidad Politécnica de Madrid
15
Direccionamiento Relativo
a Registro Índice
• Es un direccionamiento relativo a registro base en el que el registro base
se modifica:
•Preincremento
•Predecremento
•Postincremento
R1 MEM(R7+8)
R1 MEM(R7+8)
•LD .R1,#8[++.R7]
•LD .R1,#8[--.R7]
•LD .R1,#8[.R7++]
•LD .R1,#8[.R7--]
R7 R7+4
R7 R7-4
R1 MEM(R7+8) R7 R7+4
R1 MEM(R7+8) R7 R7-4
•El tamaño del incremento/decremento es igual al tamaño del objeto
transferido
•Útil para recorrer vectores y matrices
•Postdecremento
Dpto. Arquitectura y Tecnología de Sistemas Informáticos.
Universidad Politécnica de Madrid
16
Direccionamiento Indirecto
• La instrucción contiene la dirección donde está contenida la dirección
donde se almacena el objeto.
a Registro
•La instrucción contiene la especificación del registro que contiene la
dirección de memoria donde está almacenado el objeto
•LD .R1,[.R4]
R1 MEM(R4)
Instrucción
D
Registros
Memoria
Dpto. Arquitectura y Tecnología de Sistemas Informáticos.
Universidad Politécnica de Madrid
Objeto
17
Direccionamiento Indirecto
a Memoria
• La instrucción contiene una dirección de memoria donde está contenida la
dirección donde se almacena el objeto.
•LD .R1,[/1000]
R1 MEM(MEM(1000))
Instrucción
D
Memoria
Objeto
Dpto. Arquitectura y Tecnología de Sistemas Informáticos.
Universidad Politécnica de Madrid
18
Direccionamiento Implícito
• La instrucción no contiene ni la dirección ni el objeto que se usa en el
direccionamiento.
•En máquinas de acumulador
•ADDA .R1
A A + R1
Dpto. Arquitectura y Tecnología de Sistemas Informáticos.
Universidad Politécnica de Madrid
19
Juego de instrucciones
• Conjunto de instrucciones del computador.
•“Herramientas” con las que construir programas
•Debe ser completo y eficaz.
•Tipos:
• Transferencia
•Bifurcaciones
•Aritméticas
•Lógicas
•Desplazamiento y rotación
•De bit
Dpto. Arquitectura y Tecnología de Sistemas Informáticos.
Universidad Politécnica de Madrid
20
Transferencia de datos
• Mueven datos entre registros, registros y posiciones de memoria y entre
posiciones de memoria.
•No modifican los biestables de estado.
•LD, ST y MOVE
•LD .R2, #4[.R4]
•ST .R2, #4[.R4]
•MOVE .R2,.R4
•MOVE [.R2],[.R4]
•PUSH .R1
•POP .R1
•PUSH y POP
R2 MEM(R4+4)
MEM(R4+4) R2
R4 R2
MEM(R4) MEM(R2)
SP SP-4;MEM(SP) R1
R1 MEM(SP); SP SP + 4
Dpto. Arquitectura y Tecnología de Sistemas Informáticos.
Universidad Politécnica de Madrid
21
Bifurcaciones
• Modifican la secuencia del programa. Lo habitual es que la siguiente
instrucción que se ejecuta sea la siguiente en secuencia. En este caso no
es así.
Comentarios de: Programación en Ensamblador - Estructura de computadores (0)
No hay comentarios