You are on page 1of 29

Lenguaje de Programacin cap.

1 Estructura del Computador

Estructura del computador


Componentes:
Sistema Procesador: Realiza la ejecucin de los programas. Perifricos: Medios de almacenamiento de largo plazo y dispositivos Entrada/Salida de informacin (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 perifricos. Buses: para transportar datos y programas entre Memoria, CPU y Controladores

Estructura del Sistema Procesador (cont.)


Sistema Procesador

CPU

Memoria

Contr. E/S

Perifricos

Bus Datos Bus de Direcciones Bus de Control

Memoria (RAM), caractersticas


La memoria est dividida en celdas de igual
tamao.

Cada celda de memoria tiene asociado un


nmero o direccin que la identifica.

MEMORIA

Las celdas de memoria RAM (acceso


randmico) se pueden leer y escribir.

Las celdas siempre tienen valores (nunca


estn vacas)

n-1

Memoria (RAM), caractersticas


Cada celda de memoria est compuesta por subceldas biestables. Siempre tienen uno
de dos estados

A los dos estados se les atribuye un valor numrico: cero o uno Las combinaciones de ceros y unos pueden representar todo tipo de datos: numricos,
texto, sonidos, imgenes, 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), caractersticas


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. Slo 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 ms naturales a los humanos. Por ejemplo se puede tratar una celda de memoria como si fuese una variable.

Memoria (RAM), caractersticas


Los lenguajes tiene diferentes formas de representar una asignacin de un dato a
una celda de memoria. Algunos ejemplos:

seudo lenguaje significa que lo que estaba almacenado en la celda con direccin B se copia en la celda A, lo que haba en A se pierde y lo que haba en B permanece lenguaje Pascal lenguaje C

A := B A=B

MOV (AX), (B) lenguaje assembler (se requiere dos pasos) MOV (A), (AX)

Memoria (RAM), uso


0
Programa y datos del Sistema Operativo Programa de MEMORIA usuario Datos del programa de usuario Libre En lenguaje de mquina

Instruccin 1 Instruccin 2 Instruccin 3 .................... Instruccin n

n-1

Unidad Central de Procesos: CPU (1)

AX BX

Registros de datos Almacenan los datos que son utilizados por las instrucciones de mquina. Aparecen como operando en las instrucciones. Mov AX, 33 Mov BX, 10 Add AX, BX
mueve un 33 al registro AX mueve un 10 al registro BX

suma el contenido de AX con el de BX y 1 deja el resultado en AX

Unidad Central de Procesos: CPU (2)

AX BX
Registro de Instruccin

Almacena la instruccin que se est ejecutando. Es invisible para el programa de mquina.(no aparece en la instruccin en forma explcita).

Unidad Central de Procesos: CPU (3)

AX BX
Registro de Instruccin IP

Direccin de la prxima instruccin Apunta a la prxima instruccin. No aparece como operando. Puede ser modificado por instrucciones de transferencia de control. Ej.: Jmp 2000 cambia el contenido de IP por 2000.

Unidad Central de Procesos: CPU (4)

AX BX
Registro de Instruccin IP Registro de estado

Banderas de resultado de la ltima instruccin 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)


La pila es una estructura que permite almacenar y retirar datos slo del tope. Se usa para trabajar con subprogramas. La pilas pueden estar en cualquier parte de la memoria.

AX BX
Registro de Instruccin IP Registro de estado SP

Direccin del tope de pila


1

Ciclo de ejecucin: CPU (6)

Las Instrucciones del programa viajan por el bus de datos y llegan al Registro de Instruccin de la CPU donde son ejecutadas. Las instrucciones son llevadas secuencialmente a la CPU. El procesador realiza el Ciclo de Ejecucin de instrucciones:

Traer instruccin apuntada por IP Incrementar IP Ejecutar instruccin


1

Instrucciones de mquina

De movimiento, copia el contenido de una celda de memoria o registro en otra celda o registro. Ej: Mov AX, (2000)
Aritmticas y lgicas, 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.
AX

33 Mov AX, 33

Modos de direccionamiento (2)


Registro: el operando es un registro que contiene el dato.
AX

33

Mov AX, (2000) Directo: el operando es la direccin el dato.


2000

33 200

Modos de direccionamiento (3)


Registro: el operando es un registro que contiene el dato.
AX

33

Mov AX, ((2000))

OJO: a esta celda se le llama puntero, en C !!

Diferido o indirecto: el operando es la direccin de la direccin del dato. A la celda cuya direccin aparece en el operando se le denomina puntero.

2000

3000 200 33 200

3000

Modos de direccionamiento (4)


AX

33

uno: Mov AX, ((2000)) Inc (2000) Jmp uno


Jmp: Instruccin de transferencia de control Inc: Instruccin que incrementa en uno

2000

3000 200 33 200

3000

uno: rtulo que representa la direccin en la que est almacenada la instruccin qu modo de direccionamientos hay en este programa? qu ocurre al repetirse la instruccin almacenada en uno ysiguientes? cuantas veces se ejecutan?

Modos de direccionamiento (5)


AX

200

uno: Mov AX, ((2000)) Inc (2000) Jmp uno

2000

3001 200 33 200

3000

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)


Tarea: Modificar el programa para que el valor contenido por el registro de la direccin 3000 en adelante se copie en las direcciones 4000 en adelante.

2000

3000

2001

4000

3000

33 200

4000

Relacin: variables - celdas de memoria


2000

3000

2001

4000

3000

33 200

4000

En los lenguajes de alto nivel:


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.

qu variables son punteros en el ejemplo?

Variables <-> celdas de memoria (1)


Cmo asignarle un contenido?
RAM
2000

33

2000 equivale a x

Lenguaje de mquina:

Lenguaje alto nivel:

x = 33
Mov AX, 33 Mov (2000), AX
Pseudo lenguaje:

33

Variables <-> celdas de memoria (2)


Cmo asignarle un contenido que es el resultado de expresin?
RAM
2000

35

2000 equivale a x

Lenguaje de mquina:

Lenguaje alto nivel:

x = 33 + 2
Mov AX, 33 Add AX, 2 Mov (2000), AX
Pseudo lenguaje:

33 + 2

Variables <-> celdas de memoria (3)


Ejercicio:
2000 equivale a x

Lenguaje de mquina:

Lenguaje alto nivel:

x=x+3
?
Pseudo lenguaje:

x+3

Variables puntero y modo diferido


2000 equivale a x 1000 equivale a y

Lenguaje C: Mov AX, 1000 Mov (2000), AX Inc ((2000))

x = &y *x = *x + 1

You might also like