Está en la página 1de 31

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

Bus Datos
Bus de Direcciones
Bus de Control

Contr.
E/S

Perifricos

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

A := B

lenguaje Pascal

A= B

lenguaje C

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


MOV (A), (AX)

Memoria (RAM), uso


0

n-1

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

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)

AX
BX
Registro de Instruccin

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.

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.

Mov AX, ((2000))

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.

AX

33

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

2000

3000
200

3000

33
200

Modos de direccionamiento (4)


AX

uno: Mov AX, ((2000))


Inc (2000)
Jmp uno
Jmp: Instruccin de transferencia de control
Inc: Instruccin que incrementa en uno

33

2000

3000
200

3000

33
200

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)

uno: Mov AX, ((2000))


Inc (2000)
Jmp uno

AX

200

2000

3001
200

3000

33
200

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

3000

33
200

4000

4000

Relacin: variables - celdas de memoria


2000

3000

2001

3000

33
200

4000

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

Lenguaje de mquina:

33

2000 equivale a x

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

Lenguaje de mquina:

Mov AX, 33
Add AX, 2
Mov (2000), AX

35

2000 equivale a x

Lenguaje alto nivel:

x = 33 + 2
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

También podría gustarte