Anda di halaman 1dari 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

Contr.
CPU Memoria Perifricos
E/S

Bus Datos
Bus de Direcciones
Bus de Control
Memoria (RAM), caractersticas

La memoria est dividida en celdas de igual


0 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:

A B 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

Programa En lenguaje de mquina


0 y datos
del Sistema
Operativo
Instruccin 1
Programa Instruccin 2
de
MEMORIA Instruccin 3
usuario
Datos ....................
del programa Instruccin n
de usuario

n-1 Libre
Unidad Central de Procesos: CPU (1)

AX Registros de datos

BX
Almacenan los datos que son utilizados por
las instrucciones de mquina.
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
1
deja el resultado en AX
Unidad Central de Procesos: CPU (2)

AX

BX Almacena la instruccin que se est


ejecutando.
Registro de Instruccin
Es invisible para el programa de
mquina.(no aparece en la instruccin en
forma explcita).

1
Unidad Central de Procesos: CPU (3)

AX Direccin de la prxima instruccin


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

1
Unidad Central de Procesos: CPU (4)

AX

BX

Registro de Instruccin
Banderas de resultado de la ltima
IP instruccin ejecutada.
Cada bandera puede estar arriba o
Registro de estado
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


AX almacenar y retirar datos slo del tope.
Se usa para trabajar con subprogramas.
BX La pilas pueden estar en cualquier parte de
la memoria.
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

1
Modos de direccionamiento (1)

Registro: el operando es un registro que AX 33


contiene el dato.
Inmediato: el operando es el dato. Mov AX, 33
Modos de direccionamiento (2)

Registro: el operando es un registro que AX 33


contiene el dato.

Mov AX, (2000)


Directo: el operando es la
2000 33
direccin el dato.
200
Modos de direccionamiento (3)

Registro: el operando es un registro que AX 33


contiene el dato.
OJO:
a esta celda se le
Mov AX, ((2000)) llama puntero, en C !!

Diferido o indirecto: el operando es la 2000 3000


direccin de la direccin del dato.
200
A la celda cuya direccin aparece en el
operando se le denomina puntero. 3000 33
1
200
Modos de direccionamiento (4)

AX 33

uno: Mov AX, ((2000))


Inc (2000) 2000 3000
Jmp uno 200

Jmp: Instruccin de transferencia de control 3000 33


Inc: Instruccin que incrementa en uno
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)

AX 200

uno: Mov AX, ((2000))


Inc (2000) 2000 3001
Jmp uno 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 4000

3000 33 4000
200
Relacin: variables - celdas de memoria

2000 3000 2001 4000

3000 33 4000
200

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:

x 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 Pseudo lenguaje:
Mov (2000), AX
x 33 + 2
Variables <-> celdas de memoria (3)

Ejercicio:
2000 equivale a x

Lenguaje de mquina: Lenguaje alto nivel:

x=x+3

? Pseudo lenguaje:

x x+3
Variables puntero y modo diferido

2000 equivale a x
1000 equivale a y

Lenguaje C:
Mov AX, 1000
Mov (2000), AX x = &y
Inc ((2000)) *x = *x + 1

Anda mungkin juga menyukai