Estructura del computador Componentes: Sistema Procesador:
Realiza la ejecución de los programas. Periféricos:
Medios de almacenamiento de largo plazo y dispositivos
Entrada/Salida de información (E/S).
Estructura del computador (cont.)?
Estrutura del Sistema Procesador Componentes: Memoria: para
almacenar programas y datos. CPU (Unidad Central de Procesos):
para realizar las instrucciones del programa. Controladores de
E/S: para controlar a los dispositivos periféricos. Buses:
para transportar datos y programas entre Memoria, CPU y
Controladores
Estructura del Sistema Procesador (cont.)? (Gp:) Bus Datos (Gp:)
Bus de Direcciones CPU (Gp:) Bus de Control Memoria Contr. E/S
(Gp:) Periféricos (Gp:) Sistema Procesador
MEMORIA Memoria (RAM), características (Gp:) 0 (Gp:) n-1
Cada celda de memoria tiene asociado un número o
dirección que la identifica. Las celdas siempre tienen
valores (nunca están vacías) Las celdas de memoria
RAM (acceso randómico) se pueden “leer y
escribir”. La memoria está dividida en celdas de
igual tamaño.
Memoria (RAM), características Cada celda de memoria
está compuesta por subceldas biestables. Siempre tienen
uno de dos estados A los dos estados se les atribuye un valor
numérico: cero o uno Las combinaciones de ceros y unos
pueden representar todo tipo de datos: numéricos, texto,
sonidos, imágenes, video, instrucciones o cualquier cosa
que se quiera que el computador procese Si se apaga el computador
los datos almacenados en la memoria (RAM) se pierden
Memoria (RAM), características si se quiere almacenar
(asignar) un dato en una celda de memoria, el dato almacenado es
reemplazado por el nuevo dato y el viejo se pierde. Sólo
almacena un dato a la vez Si se copia un dato desde una celda a
otra, el dato original es clonado (permanece) Cuando se hacen
programas, las direcciones de las celdas son representadas por
palabras que resultan más naturales a los humanos. Por
ejemplo se puede tratar una celda de memoria como si fuese una
variable.
Memoria (RAM), características Los lenguajes tiene
diferentes formas de representar una asignación de un dato
a una celda de memoria. Algunos ejemplos: A B ’seudo
lenguaje’ significa que lo que estaba almacenado en la
celda con dirección B se copia en la celda A, lo que
había en A se pierde y lo que había en B permanece
A := B lenguaje Pascal A = B lenguaje C MOV (AX), (B) lenguaje
assembler (se requiere dos pasos) MOV (A), (AX)
MEMORIA Memoria (RAM), uso (Gp:) 0 (Gp:) n-1 Libre Programa y
datos del Sistema Operativo Programa de usuario Datos del
programa de usuario (Gp:) Instrucción 1 Instrucción
2 Instrucción 3 ……………….. Instrucción n
(Gp:) En lenguaje de máquina
1 Unidad Central de Procesos: CPU (1)? AX BX Registros de datos
Almacenan los datos que son utilizados por las instrucciones de
máquina. Aparecen como operando en las instrucciones. Mov
AX, 33 mueve un 33 al registro AX Mov BX, 10 mueve un 10 al
registro BX Add AX, BX suma el contenido de AX con el de BX y
deja el resultado en AX
1 Unidad Central de Procesos: CPU (2)? AX BX Registro de
Instrucción Almacena la instrucción que se
está ejecutando. Es invisible para el programa de
máquina.(no aparece en la instrucción en forma
explícita).
1 Unidad Central de Procesos: CPU (3)? AX BX IP Registro de
Instrucción Dirección de la próxima
instrucción Apunta a la próxima instrucción.
No aparece como operando. Puede ser modificado por instrucciones
de transferencia de control. Ej.: Jmp 2000 cambia el contenido de
IP por 2000.
1 Unidad Central de Procesos: CPU (4)? AX BX IP Registro de
estado Registro de Instrucción Banderas de resultado de la
última instrucción ejecutada. Cada bandera puede
estar arriba o abajo (1 ó 0). Ejemplo: si el resultado fue
negativo, cero, si se dividió por cero, etc.
1 Unidad Central de Procesos: CPU (5)? AX BX IP Registro de
estado SP Registro de Instrucción Dirección del
tope de pila La pila es una estructura que permite almacenar y
retirar datos sólo del tope. Se usa para trabajar con
“subprogramas”. La pilas pueden estar en cualquier
parte de la memoria.
1 Ciclo de ejecución: CPU (6)? Las Instrucciones del
programa “viajan” por el bus de datos y llegan al
“Registro de Instrucción” de la CPU donde son
“ejecutadas”. Las instrucciones son llevadas
secuencialmente a la CPU. El procesador realiza el “Ciclo
de Ejecución de instrucciones”: Traer
instrucción apuntada por IP Incrementar IP Ejecutar
instrucción
1 Instrucciones de máquina De movimiento, copia el
contenido de una celda de memoria o registro en otra celda o
registro. Ej: Mov AX, (2000) Aritméticas y lógicas,
suman, restan dividen, etc. Ej.: Add AX, BX De trasferencia de
control, cambian el contenido de IP cambiando el lugar de la RAM
desde el cual secuencialmente las instrucciones. Ej.: Jmp
300
Modos de direccionamiento (1)? Registro: el operando es un
registro que contiene el dato. Inmediato: el operando es el dato.
Mov AX, 33 33 AX
Modos de direccionamiento (2)? Registro: el operando es un
registro que contiene el dato. Directo: el operando es la
dirección el dato. Mov AX, (2000)? 33 200 2000 33 AX
1 Modos de direccionamiento (3)? Registro: el operando es un
registro que contiene el dato. Diferido o indirecto: el operando
es la dirección de la dirección del dato. A la
celda cuya dirección aparece en el operando se le denomina
puntero. Mov AX, ((2000))? 3000 200 2000 33 200 3000 33 AX (Gp:)
OJO: a esta celda se le llama puntero, en C !!?
Modos de direccionamiento (4)? Mov AX, ((2000))? 3000 200 2000 33
200 3000 33 AX Inc (2000)? uno: Jmp: Instrucción de
transferencia de control uno: rótulo que representa la
dirección en la que está almacenada la
instrucción Jmp uno Inc: Instrucción que incrementa
en uno ¿qué modo de direccionamientos hay en este
programa? ¿qué ocurre al repetirse la
instrucción almacenada en uno ysiguientes? ¿cuantas
veces se ejecutan?
Modos de direccionamiento (5)? 3001 200 2000 33 200 3000 200 AX
Mov AX, ((2000))? Inc (2000)? uno: Jmp uno Tarea: Modificar el
programa para que el valor contenido por el registro AX se copie
en las direcciones 3000 en adelante.
Modos de direccionamiento (6)? 3000 2000 33 200 3000 Tarea:
Modificar el programa para que el valor contenido por el registro
de la dirección 3000 en adelante se copie en las
direcciones 4000 en adelante. 4000 2001 4000
Relación: variables – celdas de memoria 3000 2000 33 200
3000 4000 2001 4000 A todas las celdas que se les puede cambiar
el contenido se les llama variables. A las variables que
contienen direcciones se les llama punteros. En los lenguajes de
alto nivel: ¿qué variables son punteros en el
ejemplo?
33 2000 ¿Cómo asignarle un contenido? Variables
<-> celdas de memoria (1)? Mov AX, 33 Mov (2000), AX x = 33
Lenguaje de máquina: Lenguaje alto nivel: x Pseudo
lenguaje: 33 RAM 2000 equivale a x
35 2000 ¿Cómo asignarle un contenido que es el
resultado de expresión? Variables <-> celdas de
memoria (2)? Mov AX, 33 Add AX, 2 x = 33 + 2 Lenguaje de
máquina: Lenguaje alto nivel: x Pseudo lenguaje: 33 + 2
RAM Mov (2000), AX 2000 equivale a x
Ejercicio: Variables <-> celdas de memoria (3)? ? x = x + 3
Lenguaje de máquina: Lenguaje alto nivel: x Pseudo
lenguaje: x + 3 2000 equivale a x
Variables puntero y modo diferido x = &y *x = *x + 1 Lenguaje
C: 2000 equivale a x Mov AX, 1000 Mov (2000), AX Inc ((2000))?
1000 equivale a y