Está en la página 1de 40

UTN REG. SANTA FE ELECTRONICA II ING.

ELECTRICA
7-1 Arquitectura y funcionamiento de las computadoras
------------------------------------------------------------------------------------------------------------
FUNCIONAMIENTO DE LAS COMPUTADORAS

Las computadoras son sistemas electrnicos denominados tcnicamente SISTEMAS


DIGITALES BINARIOS DE PROCESO SNCRONO PROGRAMABLE. Tienen
aplicacin tanto en la gestin empresaria (procesamiento de informacin, base de datos,
etc.), como en el control de procesos industriales.
Bsicamente podemos decir que son sistemas verstiles o universales, dado que es posible
modificar la operacin que esta realizando, por otra diferente, modificando el programa de
las instrucciones, necesarias para la nueva tarea a realizar.
La base o punto de partida de estas estructuras, proviene de los sistemas digitales binarios
de proceso sncrono especializado, formados por la combinacin de sistemas secuenciales
sncronos de control (combinacin de flip flop sincrnicos activados por flancos) y
operadores aritmticos y lgicos combinacionales.
Estos sistemas, estn caracterizados por realizar un determinado proceso, mediante una
secuencia de operaciones elementales, denominadas microoperaciones.
Veamos el diagrama en bloques de estos sistemas:

Datos externos

Orden externa Unidad de


de inicio memoria

Unidad de
control

Unidad
Generador de aritmtica
impulsos y lgica

----------Seales de control
______ Seales de informacin

La unidad de memoria almacena los datos procedentes del exterior y los resultados
parciales y finales del proceso.

______________________________________________________________________ 1
Apunte de ctedra Autor: Ing. Domingo C. Guarnaschelli
UTN REG. SANTA FE ELECTRONICA II ING. ELECTRICA
7-1 Arquitectura y funcionamiento de las computadoras
------------------------------------------------------------------------------------------------------------
La unidad aritmtica y lgica recibe informacin procedente de la memoria, realiza los
clculos adecuados con ellos y le devuelve los resultados obtenidos.
La unidad de control, constituida por un sistema secuencial sincrnico, acta como
gobierno de ambas unidades; sta se activa por una orden externa.
El inconveniente de estos sistemas, es que un cambio en las especificaciones de
funcionamiento, implica la modificacin de la unidad de control.

Microperacin: Se entiende como aquella operacin aritmtica, lgica o de transferencia


de datos, que se realiza durante un ciclo del generador de impulsos, equivalente a un nico
estado de la unidad de control. La secuencia de micro operaciones realizadas en cada uno
de los estados de la UC, da lugar a un proceso de la informacin.

Datos externos
Memoria de
instrucciones
Memoria
de datos
Resultados
Unidad de
control

Unidad
Generador aritmtica
de impulsos y lgica

_ _ _ _ _seales de control
_______seales de informacin (datos, instrucciones)

En este caso la unidad de control (UC) es programable desde el exterior para indicarle las
microoperaciones que debe realizar.
Los programas de operacin de estos sistemas, son una secuencia de instrucciones
guardadas en una unidad de memoria, que le indican las sucesivas microoperaciones que
debe realizar.
Los sistemas digitales de proceso programable, reciben el nombre de computadores u
ordenadores.
La unidad de control programable, tiene dos estados diferentes:
a)-Un estado en el cual genera los impulsos adecuados para leer las instrucciones contenida
en la memoria de instrucciones y que se denomina estado de bsqueda (Fetch ).
b)-Un estado en el cual se genera los impulsos adecuados para ejecutar la instruccin y que
se denomina estado de ejecucin (Execute).

______________________________________________________________________ 2
Apunte de ctedra Autor: Ing. Domingo C. Guarnaschelli
UTN REG. SANTA FE ELECTRONICA II ING. ELECTRICA
7-1 Arquitectura y funcionamiento de las computadoras
------------------------------------------------------------------------------------------------------------
Instrucciones:
Las instrucciones le indican a la unidad de control la operacin que debe
realizar el sistema y la direccin de los operandos con que debe realizar aquella; por lo
tanto las instrucciones estn constituidas por un cierto nmero de bits, dividido en dos
campos: El campo del cdigo de operacin y el campo de direccin.

Cdigo de Direccin
operacin
Unidad central de proceso:
La UC dirige la realizacin del proceso y la unidad aritmtica
y lgica (UAL) lo ejecuta. Ambos bloques se presentan en un solo chips denominado
unidad central de proceso, microprocesador o procesador.

Unidad de Unidad Unidad


control aritmtica central de
y lgica proceso
(UCP)

Perifricos: Los sistemas externos se denominan perifricos. En Gral. cuando el


computador se conecta a mas de un perifrico, solo intercambia informacin con uno de
ellos simultneamente. Por ello para disminuir el nmero de conexiones, los perifricos se
conectan entre s y la unin comn se une al computador. De la misma manera, la memoria
de acceso aleatorio, esta conectada a la conexin comn de manera tal que permita un
acceso directo a ella con datos e instrucciones, provenientes de un perifrico.

Unidad Unidad de
central de memoria
proceso

Perifrico
Generador 1
de
impulsos
Perifrico
2

Perifrico
3

______________________________________________________________________ 3
Apunte de ctedra Autor: Ing. Domingo C. Guarnaschelli
UTN REG. SANTA FE ELECTRONICA II ING. ELECTRICA
7-1 Arquitectura y funcionamiento de las computadoras
------------------------------------------------------------------------------------------------------------

Las instrucciones son una combinacin de bits que indican a la UC las acciones que debe
realizar y por ello se pueden almacenar en la misma memoria en la que se almacenan los
datos, con lo cual se reduce el nmero de terminales de la UC.

Datos externos

Unidad de
memoria de
datos e
instrucciones
Unidad de
control

Unidad
aritmtica
y lgica
Generador
de
impulsos

_ _ _ _ seales de control
______seales de datos e instrucciones

La unidad de memoria:
Como la UC es un sistema secuencial sincronica gobernado por un
generador de impulsos de periodo constante, resulta preferible que la lectura de la memoria
se realice en el mismo tiempo, cualquiera sea la posicion de lectura; por ello resulta
conveniente, que esta sea de acceso aleatorio (RAM).
Los datos externos y los resultados parciales se memorizan entonces en una memoria de
lectura/escritura de acceso aleatorio.
Las instrucciones tambin se pueden almacenar en una memoria de este tipo denominada
activa. En algunos casos estas instrucciones no se van a modificar, por lo que resulta
conveniente almecenarlos en una memoria pasiva (ROM), dando lugar a la siguiente
estructura:
______________________________________________________________________ 4
Apunte de ctedra Autor: Ing. Domingo C. Guarnaschelli
UTN REG. SANTA FE ELECTRONICA II ING. ELECTRICA
7-1 Arquitectura y funcionamiento de las computadoras
------------------------------------------------------------------------------------------------------------

Memoria Memoria
activa pasiva
(RAM) (ROM)

Resultados

Unidad de
control

Unidad Datos externos


aritmtica
Generador y lgica
de
impulsos

PROCESAMIENTO DE DATOS EN LA COMPUTADORA

Este tiene la particularidad de ser automtico. En este proceso automtico, estn presentes
cuatro subprocesos:

ENTRADA--- MEMORIZACIN--- PROCESAMIENTO---SALIDA

Antes de entrar en detalle del desarrollo de estos subprocesos dentro de la computadora,


tomaremos un modelo equivalente de cmo se procesa la informacin.
Para ello suponemos una persona (que representa la unidad de control) sentada en un
escritorio el cual tiene puesta una camisa con dos bolsillos (registros), uno en la izquierda y
otro en la derecha. , que le podemos llamar acumulador A y acumulador B. Frente a la
persona, sobre el escritorio, tiene dos canastas que actan como bandeja de entrada y
bandeja de salida (puerto paralelo o puerto serie de la PC). Sobre la pared hay un reloj
que nos permitir sincronizar o establecer un ritmo minuto a minuto sobre la tarea que se va
a realizar (oscilador a cristal para generar pulsos de sincronismo en la PC).
Sobre el escritorio tenemos una hoja de papel, un lpiz, una goma de borrar y una
calculadora (este elemento representa la UAL de la PC).
En principio tambin vamos a suponer que siempre realizaremos la misma tarea. La tarea a
realizar, estar descripta en un mazo de tarjetas y son fijas (equivalente a una memoria
ROM). En cada tarjeta, y en forma ordenada se indicaran las diferentes tareas a realizar
(instrucciones) con los datos que vayan llegando sobre la bandeja de entrada.

______________________________________________________________________ 5
Apunte de ctedra Autor: Ing. Domingo C. Guarnaschelli
UTN REG. SANTA FE ELECTRONICA II ING. ELECTRICA
7-1 Arquitectura y funcionamiento de las computadoras
------------------------------------------------------------------------------------------------------------
Las instrucciones de este mazo de cartas (programa), conducirn a almacenar sobre un
pizarrn (memoria RAM voltil), cinco nmeros impares, obtenidos de la bandeja de
entrada, que sean mayores a 100.
El operador (UC), realizara cada instruccin, minuto a minuto en sincronismo con la lectura
del reloj:
Tarjeta n1: Leer un numero de la bandeja de entrada y escribirlo en el papel y guardarlo
en el bolsillo izquierdo (acumulador A).
Tarjeta n2: El n es impar? , si lo es saltear las tarjetas n 3, 4, y 5.
Tarjeta n3: Leer un numero de la bandeja de entrada, escribirlo en el papel y guardarlo en
el bolsillo derecho (acumulador B).
Tarjeta n4: Sumar los nmeros de ambos bolsillos y poner el resultado en el papel del
bolsillo izquierdo (acumulador A).
Tarjeta n5: El n es impar?, si no lo es, volver a la tarjeta n3.
Tarjeta n6: El n obtenido es mayor a 100?, si no lo es volver a la tarjeta n3.
Tarjeta n7: Escribir en el pizarrn el nmero almacenado en el bolsillo izquierdo.
Tarjeta n8: Hay cinco nmeros en el pizarrn?, si no lo hay volver a la tarjeta n1

Como podemos observar, cuando se lee cada instruccin, se deber tomar una decisin
lgica (por ejemplo saltar a otra instruccin) o realizar una operacin. Estas acciones
son las funciones principales que se desarrollan en un computador.

CONCEPTOS DE PROGRAMACIN

En el modelo equivalente desarrollado, vemos que un programa de una computadora se


realiza con un conjunto de instrucciones ordenadas, que se encuentran en una memoria. Los
programas de computacin, se denominan software y son los encargados de dirigir la
actividad de la UCP (microprocesador).
Los programas, habitualmente estn guardados en una unidad de disco rgido, unidad de
disquete, CD ROM, o en una memoria electrnica permanente del tipo ROM.
Diagrama de flujo:
Antes de comenzar a escribir un programa sobre un papel o editor de
textos de una PC, es conveniente generar un diagrama de flujo de las actividades que se
desea que el programa ejecute. Podemos decir que un diagrama de flujo es una
representacin grafica de los pasos lgicos, clculos y decisiones y la secuencia en que
deben ejecutarse los mismos, para llevar a cabo una tarea especifica.

Smbolos utilizados
Comienzo, continuacin o fin
Proceso o
accin
Conexin entre pginas del flujo

desicin Entrada
o salida

______________________________________________________________________ 6
Apunte de ctedra Autor: Ing. Domingo C. Guarnaschelli
UTN REG. SANTA FE ELECTRONICA II ING. ELECTRICA
7-1 Arquitectura y funcionamiento de las computadoras
------------------------------------------------------------------------------------------------------------
Diagrama de flujo del ejemplo

T7

Comienzo
Escribir
T1 resultado en
pizarrn
Colocar en bolsillo
izquierdo un n de la
canasta de entrada
T8
no
T2 Quinto
si
El N es nmero?
impar?

no T3

Colocar en bolsillo
derecho un n de la
canasta de entrada Continuar

T4
Sumar ambos N y
guardar resultado en
bolsillo izquierdo

no T5

El N es
impar

si

T6
El N
supera
100
no

si

______________________________________________________________________ 7
Apunte de ctedra Autor: Ing. Domingo C. Guarnaschelli
UTN REG. SANTA FE ELECTRONICA II ING. ELECTRICA
7-1 Arquitectura y funcionamiento de las computadoras
------------------------------------------------------------------------------------------------------------

Cdigos nemotcnicos:
Son cdigos simples, alfabticos y representan la funcin de la instruccin codificada.
Las instrucciones de una computadora, estn materializadas como un grupo de bits
codificados que la UC lo interpreta y realiza una determinada operacin.
Por ejemplo en el microprocesador de Motorola M6800, la instruccin
ABA(nemotcnica) significa sumar el contenido del acumulador A con B.
Esta instruccin en formato de 8 bits equivale: ABA = 1B (hex) = 00011011
Cuando el microprocesador encuentra esta instruccin (en el registro de instruccin), la
decodifica interpretando sumar los contenidos de los acumuladores, colocar el resultado en
el acumulador A y buscar la prxima instruccin en la direccin de memoria siguiente.
Ejemplo: MOV AX, 1020. Esta instruccin corresponde a los microprocesadores INTEL
(80x86 como el 286-386-486-Pentium). Significa guardar el dato 1020 (hex) en el registro
AX.
MOV [5000] ,AX = A10050 (hex).
A1: cdigo de operacin: mover un dato al registro AX0050: direccin de memoria donde
se encuentra el dato.
Teniendo en cuenta el ejemplo anterior, en un computador tenemos dos aspectos
importantes que permiten desarrollar un determinado proceso: El hardware que
representa el medio fsico que permite desarrollar el proceso, y el software o programa,
que representa el conjunto de instrucciones para dirigir el desarrollo del proceso.
Teniendo en cuenta los cuatro subprocesos mencionados, los bloques funcionales de un
computador (PC), se pueden representar como las funciones que realizan:

ENTRADA MEMORIZACION

SALIDA PROCESAMIENTO

______________________________________________________________________ 8
Apunte de ctedra Autor: Ing. Domingo C. Guarnaschelli
UTN REG. SANTA FE ELECTRONICA II ING. ELECTRICA
7-1 Arquitectura y funcionamiento de las computadoras
------------------------------------------------------------------------------------------------------------

Bloques bsicos que constituyen un computador personal (PC)

Entrada Memorizacin Procesamiento Salida

Interfaces Interfaces

MICRO
Mouse I PROCESADOR I Monitor

MEMORIA Unidad de
control
Disco
rigido
I I Disco
rigido
Instrucciones Registros
Datos datos, ins-
Unidad de
disquete
I trucciones I Unidad de
estado y disquete
Resultados puntero

Scanner
I I Impresora
Unidad
aritmtica
Moden
I y lgica I Moden

CD ROM
I I Plotter

Perifricos Bus de datos, instrucciones, Perifricos


de entrada direcciones y control de salida

Perifricos de entrada / salida:


Son dispositivos que suministran y o reciben informacin de
la computadora. Generalmente los perifricos trabajan en un sistema diferente e
independiente.
Interfaces de entrada / salida:
Son circuitos electrnicos intermediarios, ubicados entre dos
subsistemas independientes, que sirve para comunicarlos y adaptarlos elctricamente. En
Gral. la interfase esta ubicada (no siempre) en una placa adaptadora que se inserta en la

______________________________________________________________________ 9
Apunte de ctedra Autor: Ing. Domingo C. Guarnaschelli
UTN REG. SANTA FE ELECTRONICA II ING. ELECTRICA
7-1 Arquitectura y funcionamiento de las computadoras
------------------------------------------------------------------------------------------------------------
placa principal de la computadora (placa madre o Motherboard). El perifrico se conecta a
esta placa por medio de un cable que posee varios conductores (a travs de un conector).
Este cable posee en sus extremos conectores apropiados para conectar el perifrico por un
lado y la plaqueta interfase por el otro.
La plaqueta interfase (electrnica intermedia), posee circuitos con memoria que constituyen
registros denominados puertos (Port).
Resumiendo la plaqueta interfase tiene como misin principal, convertir los datos externos
en internos en las operaciones de entrada y a la inversa en las operaciones de salida.
La unidad de control, que es la que gobierna el funcionamiento interno, no tiene mando
directo sobre los perifricos; lo hace a travs de la plaqueta interfase, por medio de un
programa preparado a tal fin.

Buses:
En un computador, los distintos sistemas que lo conforman, se comunican entre s,
mediante un conjunto de lneas elctricas (impresas en la placa principal), y cables
conductores que los interconectan entre s elctricamente, los cuales configuran una
estructura de interconexin. Decimos entonces que un bus de un computador es una
estructura de interconexin para la comunicacin selectiva entre dos o ms mdulos por
vez. Por ejemplo la comunicacin del microprocesador con la memoria, para transmitir
direcciones, datos, resultados y para suministrar energa elctrica, constituyen un bus.
En Gral., en un bus encontramos lneas para direcciones, datos y seales de control.

Bus de direcciones: Conducen desde la UCP a la memoria principal (MP), una


combinacin de unos y ceros que indica como localizar instrucciones o datos. Es
unidireccional. Los puertos, tambin son direccionados por este bus.

Bus de datos: Por ejemplo en cada lectura de MP, estas lneas conducen datos a operar
como instrucciones (para la arquitectura de Von Neuman). En una operacin de escritura,
conducen los resultados desde la UCP a la MP.

Bus de control: Son unidireccionales. Salen de la UCP hacia la MP o interfaces. La UCP


las utiliza para leer o escribir en la MP, o para recibir seales que indica lectura
efectivizada o solicitudes de interrupcin.
Un bus comn en las PC es el bus de sistema o bus ISA IBM bus o AT bus o bus de
entradas salidas al cual a travs de zcalos se conectan plaquetas para conexin de
perifricos. Este bus tiene las tres clases de lneas indicadas. No esta directamente
vinculado al bus local que se conecta directamente a las patas de la pastilla que contiene a
la UCP.
Otros buses comunes de encontrar en una PC son el VESA (conectado a lneas que salen de
la UCP), el bus PCI, como as tambin el conexionado SCSI.
Las lneas de datos de cualquier bus se interconectan con las lneas de datos del bus del
microprocesador ya sea directamente o a travs de chips, cuyos circuitos hacen de puente
entre los distintos buses como lo sugiere el dibujo.
Es importante aclarar, que si bien los distintos perifricos estn conectados a los mismos
buses, no lo hacen simultneamente, sino a travs de solicitudes de interrupcin (lneas
IRQ).

______________________________________________________________________ 10
Apunte de ctedra Autor: Ing. Domingo C. Guarnaschelli
UTN REG. SANTA FE ELECTRONICA II ING. ELECTRICA
7-1 Arquitectura y funcionamiento de las computadoras
------------------------------------------------------------------------------------------------------------
Otra caracterstica de la comunicacin de los perifricos con la UCP, esta en la forma de
transferir los datos e instrucciones. Una forma es que en vez de pasar directamente los datos
e instrucciones a la MP, lo hagan a travs de registros (como AX) de la UCP y de este a la
MP, dando lugar a una triangulacin. Esto es lo que sucede en una PC, cuando se entran
datos desde el teclado, el Mouse o el disco rgido. En cambio la unidad de disquete enva o
recibe informacin directamente a memoria sin realizar la triangulacin. Esta ultima
transferencia de informacin se denomina acceso directo a memoria (ADM). En teora
resultara ms rpida pero en los procesadores rpidos como el 486 o Pentium, la
triangulacin resulta ms acelerada.

BLOQUES INTERNOS PRINCIPALES DE UN SISTEMA DIGITAL SINCRNICO


PROGRAMABLE

Bus de direcciones

Memoria Unidad de control

R D I Bus datos e R D M S P
D I N Instrucciones I I I C
I S
T

Bus de control

Unidad operativa

Mdulos
de entrada Registro
y salida auxiliar
I/O Unidad
Acumula aritme-
dor tica
lgica
Registro UAL
de
estado

______________________________________________________________________ 11
Apunte de ctedra Autor: Ing. Domingo C. Guarnaschelli
UTN REG. SANTA FE ELECTRONICA II ING. ELECTRICA
7-1 Arquitectura y funcionamiento de las computadoras
------------------------------------------------------------------------------------------------------------
UNIDAD CENTRAL DE PROCESO (UCP)

Esta formado por la unidad de control (UC) y la unidad operativa. Esta ultima esta
compuesta por la unidad aritmtica y lgica y los registros como el AX, RI y otros que se
usan durante la ejecucin de cada instruccin.
La UCP, es el bloque donde se ejecutan las instrucciones. Hacia ella se dirigen las
instrucciones que sern ejecutadas (una vez que se decodifique su cdigo) y los datos para
ser operados por la UAL. De la misma forma, con los resultados que genere la UAL.
La UCP de una microcomputadora como lo es una PC, esta contenido en el chip
microprocesador central (INTEL: 80286/386/486/Pentium, Power pc, Alfa, etc.)

Diagrama en bloques de la unidad de control (UC)en la Fase ejecucin de la


instruccin

Registro de Decodificador
Bus de datos e instrucciones de instrucciones
instrucciones (RI) (DI)

Memoria de
microinstrucciones Secuenciador
(MI) generador de Contador
Cdigos de impulsos de de
instruccion control programa
(S)

Bus de control Bus de direcciones

La unidad de control tiene la misin de interpretar y ejecutar las instrucciones provenientes


de la MP a travs del bus de datos e instrucciones. El cdigo binario que se va a ejecutar, se
deposita en el registro de instrucciones (RI) y luego se traslada al decodificador de
instrucciones (DI), cuya misin es seleccionar en una memoria ROM, un conjunto de
posiciones que corresponden al cdigo recibido y en las que se encuentran los cdigos de
las operaciones elementales o microinstrucciones, que componen las diferentes etapas en
las que se divide la ejecucin de la instruccin decodificada.

______________________________________________________________________ 12
Apunte de ctedra Autor: Ing. Domingo C. Guarnaschelli
UTN REG. SANTA FE ELECTRONICA II ING. ELECTRICA
7-1 Arquitectura y funcionamiento de las computadoras
------------------------------------------------------------------------------------------------------------
Las microinstrucciones van pasando al secuenciador (S), que es un circuito lgico de
control y tiempos, el cual gobierna a todos los elementos del sistema y lleva a cabo la
ejecucin secuencial de las microinstrucciones.
La funcin del contador de programa (PC), es enviar por el bus de direcciones, la posicin
de la memoria donde se encuentra la siguiente instruccin que se va a ejecutar. Este
contador, se incrementa en una unidad, en cuanto la memoria acepta la direccin de la
instruccin anterior.
Operaciones de la unidad de control:
La UC, realiza millones de operaciones bsicas por
segundo, en forma repetitiva o cclica a saber:
1)- Obtener de la memoria, la prxima instruccin a ejecutar.
2)- Decodificar la instruccin.
3)- Localizar los datos a operar en MP, registro, etc. segn lo ordene la instruccin.
4)-Ordena a la UAL que realice la operacin indicada, guardando el resultado en un
registro o en MP

1 2 3 4

Obtener Decodificar Localizar Realizar


instrucc dato a operacin y
operar guardar

Obtener nueva instruccin con el PC actualizado

Las direcciones en MP estn ubicadas en forma consecutiva. La UC localiza las direcciones


de las instrucciones, a travs de contador de programa o tambin denominado registro
puntero, donde se registra la prxima instruccin a ejecutar. Cuando la instruccin se
ejecuta (paso 4), el contador de programa se actualiza, para obtener la direccin de la
prxima instruccin. Cabe aclarar que una instruccin puede estar compuesta por varias
direcciones consecutivas de la MP.

La unidad aritmtica y lgica UAL:


La UAL es un circuito combinacional, que realiza
operaciones aritmticas con nmeros naturales o enteros, con instrucciones de suma, resta,
multiplicacin y divisin. Tambin realiza operaciones lgicas.
Para operar con nmeros fraccionarios, el programa que ordena las operaciones aritmticas,
debe controlar el lugar donde esta la coma y operar como nmeros enteros, de forma
similar como lo hacemos manualmente.
Las operaciones lgicas que puede realizar son la AND, la OR, y la NOT. Tambin en
algunas UAL pueden realizar la NAND, NOR, Y XOR.
Por ejemplo la operacin AND queda definida por las siguientes condiciones:
0.0=0 0.1=0 1.0=0 1.1=1

______________________________________________________________________ 13
Apunte de ctedra Autor: Ing. Domingo C. Guarnaschelli
UTN REG. SANTA FE ELECTRONICA II ING. ELECTRICA
7-1 Arquitectura y funcionamiento de las computadoras
------------------------------------------------------------------------------------------------------------
Si tenemos dos operando de 8 bits, la operacin AND se realiza columna por columna:

10010100
11011101
-------------
10010100
Tambin puede realizar operaciones de comparacin. Por ejemplo si se desea comparar dos
nmeros A y B a fin de saber si A es igual, mayor o menor que B, en la UAL se resta A-B.
La indicacin de la UAL de resultado negativo, cero o positivo, permite conocer como es A
respecto de B.
La UC no sabe que esta operando nmeros ni el valor de una combinacin binaria. Por
ejemplo para saber si un nmero es el 2003, debemos restarle el mismo nmero. Si el
resultado es cero, entonces es el nmero.
La UAL indica el resultado de su operacin mediante indicadores de estado (flag) que
pueden valer 0 1 y se encuentran en el denominado registro de estado. Estos
indicadores son esenciales para determinar, mediante instrucciones de salto, que se pase a
ejecutar otra instruccin distinta de la que corresponde por orden sucesivo de escritura de
las instrucciones en memoria.
El registro de estado en las PC es de 16 bits, los cuales se utiliza tres bits o banderas de
control para: Direccin, interrupcin y captura; cinco bits o banderas de status:
desbordamiento, signo, cero, acarreo auxiliar, parida, acarreo.
Por ejemplo el indicador de signo (S) para enteros vale 1(NG) si el resultado de la
operacin fue negativo y vale 0 (PL) si fue positivo
El indicador de cero vale 1 (ZR) si el resultado vale cero y si no es cero, vale 0 (NZ).

Diagrama en bloques de la unidad operativa UAL

Resultado

Registro
acumulador
Unidad
Bus aritmtica
de y lgica
datos Registro
Registro 2 de estado
operando

Seleccin de la operacin

Uno de los operando que interviene en la operacin se carga en el registro acumulador


(AX). El otro operando se carga en otro registro auxiliar (BX, CX, DX). El resultado de la
operacin en Gral, queda en el registro acumulador, reemplazando al 1 operando.
______________________________________________________________________ 14
Apunte de ctedra Autor: Ing. Domingo C. Guarnaschelli
UTN REG. SANTA FE ELECTRONICA II ING. ELECTRICA
7-1 Arquitectura y funcionamiento de las computadoras
------------------------------------------------------------------------------------------------------------
Denominacin de las agrupaciones de bits

1 nibble = 4 bits

1 byte = 8 bits

Palabra = 2 bytes = 16 bits (word)

Palabra larga 4 bytes = 32 bits (doble Word)

1024 bytes = 1 kbyte (1 kb) = 8.192 bits.

1 Mbytes (1MB) = 1024 Kbytes = 1024x1024 bytes = 1.048.576 bytes

1 Gbyte (1 GB) = 1024 Mbyte = 1024x1024x1024 bytes

1 Tbyte (1TB) = 1024 Gbyte = 1024x1024x1024x1024 bytes

LA MEMORIA PRINCIPAL DE UN COMPUTADOR (MP)

La MP de un computador es de acceso aleatorio, significando esto, que el tiempo de acceso


es el mismo para cualquier dato o instruccin que se quiera leer o escribir.
Considerando el mantenimiento en el tiempo de la informacin guardada, las memorias
pueden ser ROM, donde el contenido se mantiene en el tiempo, y se dice que son de solo
lectura, y RAM que se caracterizan por que se pueden leer y escribir. El contenido de estas
ltimas se puede borrar y volver a escribir.
Dentro de esta primera clasificacin, tendremos varios tipos que por el momento no lo
consideraremos. Solamente veremos por ahora su direccionamiento y contenido.
Una memoria, la podemos considerar como un conjunto de casilleros. En cada casillero,(si
esta organizada en bytes) se guarda un byte de informacin (8 bits). Este, puede ser un dato,
un carcter imprimible o no, una instruccin de un programa etc.
Cada casillero o celda se localiza mediante un nmero binario denominado direccin. La
cantidad de casilleros que se puede identificar, depender de la cantidad de bits que posea
la direccin.
4 bits --------24 = 16 identifica a 16 casilleros

16 ---------216 = 65.536 identifica 65.536 casilleros

32 bits 232 = 4.294.967.296 (4 Gigabytes) identifica a 4 GB


En cada celda o casillero de una memoria, identificada por una direccin, solo pueden
leerse o escribirse 8 bits por vez, sin posibilidad de operar menor cantidad de bits o un bit
aislado.
Las memorias, desde el punto de vista contructivo, pueden ser estticas o dinmicas.
Las estticas estn conformadas con flip flop sincrnicos. Estas son rpidas en lectura /
escritura pero ocupan mayor volumen.

______________________________________________________________________ 15
Apunte de ctedra Autor: Ing. Domingo C. Guarnaschelli
UTN REG. SANTA FE ELECTRONICA II ING. ELECTRICA
7-1 Arquitectura y funcionamiento de las computadoras
------------------------------------------------------------------------------------------------------------
Las dinmicas, utilizan pequeos capacitores semiconductores (MOS). Son de alta densidad
de integracin, pero necesitan tensiones elctricas de refresco para no perder la informacin
cuando estn activas. En ambas cuando se elimina la tensin de alimentacin, la
informacin se pierde.

Memorias ROM:
Son de solo lectura. Presentan un esquema de direccionamiento similar a
las RAM. Para aquellos sistemas digitales programables que realizan una funcin especfica
como los microprocesadores dedicados y los microcontroladores, en este tipo de
memoria, se guardan las instrucciones que forman el programa de la aplicacin especifica.
Eliminada la alimentacin, la informacin no se pierde. Son memorias semiconductoras y
exciten varias tcnicas para su construccin.
Por ejemplo en los computadores personales (PC), parte de la memoria principal, es ROM,
ubicada en el chip denominado ROM BIOS (Basic input output system).
La ROM BIOS contiene programas que se ejecutan cuando se enciende el computador y
tienen entre otras las siguientes finalidades:
1)- Verificar en el arranque el correcto funcionamiento del Hardware y su configuracin.
2)- Traer del disco rgido a la memoria principal (MP) una copia de programas del sistema
operativo del computador, accin conocida como bootear o arrancar el sistema.
3)- Por otra parte almacena programas que se usan permanentemente para la transferencia
de datos entre perifricos y memoria, sea en operaciones de entrada o salida de datos.
4)- La ROM BIOS tambin tiene tablas, por ejemplo relativas a caractersticas de discos.
En las PC, las ROM, son de tipo EEPROM o de tipo FLASH.

Diagrama en bloques de la unidad de memoria de lectura / escritura con 256


posiciones con 8 bits.
8lineas
Bus de Registro de Decodificador
direcciones direcciones de direcciones
(8lineas) (RDI) (DD)

Contenido Direccin

00
01
10110010 10
8 lneas 01100011 ---
Bus de 11001100 ---
datos Registro de
------------- FF
(8lineas) datos
-------------
11110001

Bus de Memoria
control 8x256 256 lneas

______________________________________________________________________ 16
Apunte de ctedra Autor: Ing. Domingo C. Guarnaschelli
UTN REG. SANTA FE ELECTRONICA II ING. ELECTRICA
7-1 Arquitectura y funcionamiento de las computadoras
------------------------------------------------------------------------------------------------------------

Analicemos la operacin de esta memoria de 256 posiciones de 8 bits.


Los datos estn ubicados en casilleros electrnicos de 8 bits cada uno. Para acceder a ellos
es necesario direccionarlos a travs del bus de direcciones. En la memoria cuando se le
indica leer (read, R), a travs del bus de control la direccin queda almacenada en el
registro de direcciones (n lneas de entrada, n lneas de salida). De all se pasa al
decodificador de direcciones, que es un circuito de n entradas y 2N salidas donde se
selecciona el casillero direccionado. Los 8 bits de la posicin accedida, salen al registro de
datos cuya salida esta conectada al bus de datos e instrucciones.
En una operacin de escritura, a travs del bus de control, se le indica a la memoria que
realice una escritura (write W). En este caso el dato (8 bits) o instruccin, se presenta en el
bus de datos y queda almacenado en un casillero indicado por el bus de direcciones.
La unidad de memoria se conecta al bus de datos e instrucciones a travs de circuitos de 3
entradas: cero, uno y alta impedancia.

Esquema de un circuito integrado de una memoria de acceso al azar (RAM)

Terminales de alimentacin

Lneas de
Seleccin Ao VCC GND Do
A1 D1 Terminales
de de entrada
Bytes o A2 capacidad D2
A3 128 bytes D3 o salida de
lneas de datos
direcciona A4 D4
A5 8x128 bits D5 Conexin
miento al bus de
A6 D6
D7 datos
Lectura/escritura R/W
_
S3 S2 S1

Triestate
Terminales para seleccin
circuito integrado para
formar bancos de memoria

______________________________________________________________________ 17
Apunte de ctedra Autor: Ing. Domingo C. Guarnaschelli
UTN REG. SANTA FE ELECTRONICA II ING. ELECTRICA
7-1 Arquitectura y funcionamiento de las computadoras
------------------------------------------------------------------------------------------------------------

Espacio de memoria de un microprocesador:


El espacio de memoria de un
microprocesador, esta relacionado a la capacidad mxima de direccionamiento que
dispone. ste, esta en relacin directa a la cantidad de lneas de direccionamiento (bus de
direcciones) que puede direccionar.
Por ejemplo, un microprocesador con un bus de datos de 8 bits y un bus de direcciones de
16 bits (como el up z80), puede manejar una capacidad de memoria mxima de:

2N = 216 = 65.536 bytes = 64 Kbytes = 64 Kb


La serie de microprocesadores de la firma INTEL, de la serie 80x80, trabajan con la
siguiente cantidad de datos y direcciones:
Microprocesador | Lnea de datos externa | lnea de direcciones | Espacio de memoria |
----------------------|------------------------------|---------------------------|--------------------------|
8086 16 20 1024 Kbytes (1MB)
8088 8 20 1024
80286 16 24 16.384 (16 MB)
80386 DX 32 32 4.096 Mbytes (4 GB)
80486 DX 32 32 4.096
Pentium 64 (int.2x32 ) 32 4.096
Pentium pro 64 36 65.536 MB (64GB)
Mapa de direccionamiento de la memoria

______________________________________________________________________ 18
Apunte de ctedra Autor: Ing. Domingo C. Guarnaschelli
UTN REG. SANTA FE ELECTRONICA II ING. ELECTRICA
7-1 Arquitectura y funcionamiento de las computadoras
------------------------------------------------------------------------------------------------------------
FFFF 1000
FFFF
F000
FFFE
E000
FFFD
D000
FFFC
C000 0C00
FFFB
B000
FFFA
A000
FFF9
9000
64KB
8000 0800
7000
1KB
6000
0005 4K
5000
0004
4000 0400
0003
3000
0002 1KB
2000
0001
1000 0100
0000 4K 1pagina
0000 0000
Tomemos por ejemplo un microprocesador de 8 bit, con un bus de direcciones de 16 bits.
La capacidad de direccionamiento es entonces de 65.536 direcciones de memoria, cada una
conteniendo un byte. Estas direcciones (ver dibujo anterior) se expresan en hexadecimal, la
mas baja de las cuales ser 0000 H y la mas alta FFFF H.
Es de notar que la direccin de memoria se incrementa en 1000 H cada 4KB (4096)
direcciones de espacio de memoria. Tambin vemos que cada 1KB, la direccin se
incrementa en 0400 H.
La memoria tambin se organiza en paginas de memoria. Cada una contiene 256 bytes y
cubre 100 H direcciones de memoria. Hay por lo tanto 4 paginas en 1KB de memoria. Las
direcciones en la pgina de ms bajo orden van desde 0000 H hasta 00FF H; en la siguiente
desde 0100 H hasta 01FF y as sucesivamente.

SECUENCIA DE OPERACIN DE UNA INSTRUCCIN

La ejecucin de un programa (conjunto de instrucciones) de una computadora exige


disponer las instrucciones, una a continuacin de la otra y en forma ordenada, en la
memoria principal (MP). El principio de ejecucin de cada una de estas instrucciones, tiene
caractersticas similares. En todas ellas como dijimos, tenemos dos tiempos fundamentales
llamados de bsqueda (fetch) y ejecucin (execute)
Fase de bsqueda:
La fase de bsqueda, corresponde al comienzo de una nueva instruccin
y es similar para cualquier instruccin. El registro contador de programa(PC oIP en los
microprocesadores de INTEL 80x86), deposita en el bus de direcciones, la direccin de la

______________________________________________________________________ 19
Apunte de ctedra Autor: Ing. Domingo C. Guarnaschelli
UTN REG. SANTA FE ELECTRONICA II ING. ELECTRICA
7-1 Arquitectura y funcionamiento de las computadoras
------------------------------------------------------------------------------------------------------------
posicin en la memoria principal, donde se encuentra el cdigo de instruccin que se va a
ejecutar. Dicho cdigo sale de la MP por el bus de datos hasta la unidad de control, donde
se graba en el registro de instrucciones segn el siguiente esquema

Contador UNIDAD
de DE
programa CONTROL

Bus de direcciones

MEMORIA PRINCIPAL

Registro de Decodificador Direccin Contenido Registro datos e


direcciones direcciones 01 11000110 instrucciones

Bus de datos e instrucciones

UNIDAD Registro de
DE instrucciones
CONTROL
Al mismo tiempo, el contador de programa se incrementa en una unidad, puesto que
siempre debe sealar la direccin de la prxima o siguiente instruccin que se va a ejecutar
para cuando se necesite. De esta forma se completa la fase de bsqueda.

Fase de ejecucin:

______________________________________________________________________ 20
Apunte de ctedra Autor: Ing. Domingo C. Guarnaschelli
UTN REG. SANTA FE ELECTRONICA II ING. ELECTRICA
7-1 Arquitectura y funcionamiento de las computadoras
------------------------------------------------------------------------------------------------------------

Bus de datos e
instrucciones
BLOQUES DE LA
UNIDAD DE CONTROL

Registro de
instrucciones

Memoria de Bus de
microinstrucciones control
Decodificador de
instrucciones direccin contenido Secuenciador

Contador de
Bus de programa
direcciones

La primera parte de esta fase, la decodificacin de la instruccin, es igual para todas las
instrucciones. La parte de la instruccin llamadacdigo de operacin (opcode), se
transfiere al decodificador de instrucciones (DI) y en esta parte comienza la diferencia
entre el repertorio de instrucciones..
Al recibir el decodificador de instrucciones, el cdigo de la instruccin en curso, se encarga
de seleccionar en la memoria de microinstrucciones, aquellas que corresponden a dicho
cdigo. Estas microinstrucciones pasan al secuenciador, las cuales originan una serie de
seales de control, en el tiempo, que regulan la ejecucin de las diferentes etapas en las que
se descompone la instruccin.
Ejecutadas todas las microinstrucciones que componen la instruccin, el contador de
programa se incrementa en una unidad y el sistema pasa a la ejecucin de la siguiente
instruccin del programa. Por ejemplo en el caso de una suma, uno de los sumandos ha de
estar contenido previamente en el registro acumulador (AX), mientras que el otro llegara
de un registro auxiliar; generalmente de la memoria de datos cuya direccin
correspondiente vendr acompaada, al cdigo de la operacin en la instruccin.
La UAL efectuar la suma y el resultado se depositar en el registro acumulador, al mismo
tiempo que los bits sealizadores del registro de estado tomarn el valor correspondiente,
en funcin del resultado.
PROCESAMIENTO INTERNO DE DATOS, EN LENGUAJE MAQUINA, DE UN
COMPUTADOR

A continuacin, a los fines, didcticos, para una mayor comprensin del funcionamiento
interno de un computador, vamos a analizar paso a paso el procesamiento de datos en un

______________________________________________________________________ 21
Apunte de ctedra Autor: Ing. Domingo C. Guarnaschelli
UTN REG. SANTA FE ELECTRONICA II ING. ELECTRICA
7-1 Arquitectura y funcionamiento de las computadoras
------------------------------------------------------------------------------------------------------------
computador personal (PC). Para ello, utilizaremos como herramienta de apoyo, el programa
DEBUG, que opera como monitor externo de lenguaje de maquina. Este programa se
encuentra residente en el sistema operativo MS-DOS. Con l, podremos realizar las
siguientes operaciones:
a) Examinar la memoria ROM y RAM del computador
b) Modificar el contenido de la memoria RAM del computador.
c) Cargar y examinar un archivo en una determinada direccin de la memoria (la memoria
se examina por sectores de 64 Kbytes).
d) Ejecutar un programa un escrito en lenguaje de maquina (unos y ceros) o en lenguaje
Ensamblador, ya sea en su totalidad o una instruccin por vez
e) Ensamblar y ejecutar programas sobre la marcha. Debug solo crea archivos con
extensin .com.. Esto significa que estos programas no pueden ser mayores a 64 Kbytes.
f) Examinar y modificar los registros operativos que son accesibles para la programacin en
lenguaje de maquina (0y 1), lenguaje Asembler (Lenguaje nemotcnico de las instrucciones
con que opera el computador) o lenguajes de alto nivel.
Para el tratamiento de los datos e instrucciones, Debug trabaja en el modo de escritura
Hexadecimal. Debug simula un microprocesador 8086, pero como es compatible con el
386, 486 y el Pentium, puede usarse con cualquier PC que disponga del sistema operativo
MS-DOS. ( El Windows 98, 2000 y Xp profesional tambin lo disponen).
Para acceder a MS-DOS (sistema operativo por medio de lneas de comando), en el
Windows Xp profesional, debemos posicionarnos en: INICIO Todos los programas
Accesorios Smbolo del sistema, y luego pulsar enter (retorno) y de esta manera
aparecer el smbolo del sistema C:\ >.En esta condicin, MS-DOS esta listo para recibir
lneas de comando.
Ejemplo:
Procedimiento para leer o escribir la memoria principal (RAM) de la PC
1) Nos posicionamos en el directorio principal C, en sistema operativo MS-DOS,
siguiendo los pasos indicados anteriormente.

2) Aparece en la pantalla, en el margen superior izquierdo, el smbolo del sistema C:\>,


indicndonos que el DOS espera que se escriban las lneas de comando.

3) C:\> DEBUG (llamamos al programa DEBUG; con el smbolo indicamos la


accin de pulsar la tecla ENTER

4) (Despus de pulsar la tecla , aparece un guin titilante indicndonos que Debug


esta listo para ejecutar sus lneas de comando). Los dgitos que van a aparecer y escribir,
representan al sistema Hexadecimal.

5) E 2000 (Lnea de comando para indicarle al DEBUG examinar la memoria en un


determinado segmento de 64 KB posiciones de 1 byte, en la direccin relativa 2000 Hex.)

6) 0AC1: 2000 69 (Despus de pulsar , aparece la direccin indicada, seguida de dos


nmeros hexadecimales, por ejemplo 69)
0AC1: Esta relacionado con el comienzo de la 1 direccin del segmento, que en este caso
es 0AC10 (se agrega un cero a la derecha).

______________________________________________________________________ 22
Apunte de ctedra Autor: Ing. Domingo C. Guarnaschelli
UTN REG. SANTA FE ELECTRONICA II ING. ELECTRICA
7-1 Arquitectura y funcionamiento de las computadoras
------------------------------------------------------------------------------------------------------------
2000: Es la direccin relativa dentro del segmento.
Para encontrar la direccin absoluta,(para una memoria de 1Mbyte1.048.576 direcciones),
debemos sumar ambas cifras (en hexadecimal):
0AC10 + 2000 = 0CC10. Como vemos, corresponde a una direccin de 20 bits por lo cual
el mximo direccionamiento que podemos hacer, es de 1 MB, comenzando por la direccin
00000 (hex) y terminando en FFFFF (hex).
69: Es el byte que esta contenido en el casillero de la MP:
69H01101001B (El contenido tambin se expresa en Hexadecimal).

7) 0AC1: 2000 69 0C 00 1A.. Una vez que apareci el primer


contenido (69), si pulsamos la tecla de la barra de espacio (SP), aparece el contenido de las
posiciones consecutivas.

8) Para cambiar el contenido de una posicin de la memoria, se escribe seguidamente al


contenido mostrado, el nuevo valor a guardar, en esa direccin.
0AC1: 2000 69 00 (En esa direccin, tiene guardado el 69; si seguidamente escribimos el
00, el contenido 69 ser reemplazado por el valor 00. Para verificar la operacin
pulsamos y nuevamente escribimos la misma direccin para visualizar si el nuevo
contenido se guard.
0AC1: 2000 00

9) Para salir del programa Debug, debemos escribir seguidamente al guin titilante, la
letra Q y a continuacin pulsar .
El contador CP (contador de programa), registro por el cual la unidad de control
direcciona a la memoria de programa (MP) para encontrar la siguiente instruccin a
ejecutar, esta formado por dos registros auxiliares, denominados Segmento de cdigo
(CS) y Registro puntero (IP). En el caso del ejemplo, se carga en CS, el valor 0AC1, y
en IP el valor 2000.
Conviene aclarar, que el contenido de una posicin de la memoria, se puede obtener con
distintos valores de direcciones relativas contenidas en CS e IP

Ejemplo:
CS IP contenido Direccin absoluta
20B9 : 5000 E8 20B90 + 5000 = 25B90
20B8 : 5010 E8 20B80 + 5010 = 25B90
20B7 : 5020 E8 20B70 + 5020 = 25B90

A continuacin vamos a crear en la PC, en el directorio C, un archivo de texto y en el


escribiremos lo siguiente: Ana 3/6/80. Esta expresin quedara grabada en el disco rgido.
Cuando llamemos a este archivo, la informacin pasara a la memoria RAM (una copia) de
la PC. Como es informacin de texto, el cdigo digital que se usa, es el ASCII.
(barra de espacio)
A n a sp 3 / 6 / 8 0 texto
41H 6EH 61H 20H 33H 2FH 36H 2FH 38H 30H cdigo ASCII (Hex)

01000001B 00101111B cdigo ASCII (Bi)

______________________________________________________________________ 23
Apunte de ctedra Autor: Ing. Domingo C. Guarnaschelli
UTN REG. SANTA FE ELECTRONICA II ING. ELECTRICA
7-1 Arquitectura y funcionamiento de las computadoras
------------------------------------------------------------------------------------------------------------

Primero vamos a crear un archivo de texto con nombre y extensin Mario.Cod:


1) C:\> Copy con Mario.Cod

2) Ana 3/6/80 ^Z (para escribir en C:\> ^Z, pulsar la tecla control junto con la tecla Z)
A continuacin examinaremos este archivo en la memoria, mediante el programa Debug
que por defecto, lo ubicara en un determinado segmento de cdigo, a partir de la direccin
relativa 0100. Para ello debemos escribir el siguiente comando, para el programa Debug, a
partir del smbolo del sistema:
3) C:\> Debug Mario.Cod

4) E100

5) 17F8:0100 41 6E 61 20 33 2F 36 2F
17F8:0108 38 30

Ejemplo
Partiendo de la ventana de Windows, crearemos un archivo de texto, que lo ubicaremos en
el directorio C que denominaremos PRUEBA1.txt. Para ello, utilizaremos el editor de
textos Bloc de notas (INICIO\Programas\Accesorios\Bloc de notas ). Como texto,
escribiremos: 0 sp 1 sp 2 sp 3 sp 4 sp, siendo sp la barra de espacio (realizado con el
tabulador)
1) Creamos el archivo y lo ubicamos en el directorio C

2) Nos ubicamos en el smbolo del sistema y escribimos el siguiente comando para el


programa Debug:
C:\> Debug PRUEBA1.txt
3) E 100 (A continuacin del guin titilante examinamos la MP con el comando E 100)
17F8:0100 31 20 32 20 33 20 34
Debug nos muestra que en esa direccin, esta guardado el cdigo binario 31(escrito en
Hex.), que representa en cdigo ASCII el numero decimal 1. Los dems cdigos los
podemos obtener pulsando la tecla de espacio (sp).

Nota: Para salir de este ltimo comando debemos pulsar la tecla ; paso seguido, aparece
el guin titilante, indicndonos que el Debug, esta esperando nuevos comandos. Si
, pasando al
queremos salir del programa, debemos escribir la letra Q y pulsar
smbolo del sistema C:\>.
Si queremos salir del smbolo del sistema, para pasar a la ventana Windows, debemos
escribir Exit y teclear .

Procesamiento de datos en un computador

En cualquier proceso de datos, es indispensable escribir en la memoria principal (MP) o


tambin llamada memoria de trabajo (RAM), los datos y las instrucciones del programa,
______________________________________________________________________ 24
Apunte de ctedra Autor: Ing. Domingo C. Guarnaschelli
UTN REG. SANTA FE ELECTRONICA II ING. ELECTRICA
7-1 Arquitectura y funcionamiento de las computadoras
------------------------------------------------------------------------------------------------------------
antes de ejecutarlas. Para ello se deber tener una zona en la memoria, donde se guardaran
las instrucciones, y una zona donde se guardaran los datos.

Representacin contenidos y direcciones de la memoria

0200 A1 0211
0201 00 I1
0202 50
5000 20
0203 03 P
5001 10
0204 06 Zona
I2 De
0205 00
Zona datos
0206 50 5006 40
De Q
0207 2B programa 5007 20
0208 06
I3
0209 06
5010
020A 50 R Resultados
5011
020B A3
00
020C 10 I4
020D 50
020F
0210

Como ejemplo, vamos a efectuar la siguiente operacin:

R=P+PQ

P = 1020 H (Hexadecimal)
Q= 2040 H

1020 H 0001 0000 0010 0000 B

Para P, asignamos las direcciones 5000 H y 5001H


Para Q, asignamos las direcciones 5006 H y 5007H
Para R, asignamos las direcciones 5010 H y 5011H

Cuando un dato ocupa mas de 1 byte (8 dgitos binarios=8 bits) de memoria, el byte de
menor peso se le asigna la primer direccin y a la direccin siguiente, el byte de mayor
peso.

______________________________________________________________________ 25
Apunte de ctedra Autor: Ing. Domingo C. Guarnaschelli
UTN REG. SANTA FE ELECTRONICA II ING. ELECTRICA
7-1 Arquitectura y funcionamiento de las computadoras
------------------------------------------------------------------------------------------------------------
En general, una instruccin ordena una operacin y en relacin con sta, permite ubicar un
dato a operar. As mismo, indica donde guardar el resultado de dicha operacin. La
combinacin binaria que codifica a una instruccin, constituye su cdigo de instruccin o
cdigo de maquina, en el sentido que representa el cdigo que entienden los circuitos de la
unidad de control (UC). Cada procesador tiene sus propios cdigos de maquina que
puede ejecutar.
Analicemos las instrucciones necesarias para resolver el ejemplo:

I1= A10050 = cdigo de maquina (A1) + direccin del dato(0050)


A1H : Es una instruccin de transferir o mover hacia el registro acumulador (AX) una copia
del dato que esta en la memoria en la direccin 5000H. I1,es una instruccin que ocupa 3
bytes y su denominacin en cdigo nemotcnico (Asembler) es MOV [5000] , AX

I2= 03065000 =cdigo de maquina (0306) + direccin del dato (0050)


0306H= Es una instruccin que ordena sumar al contenido del registro acumulador o sea
AX, una copia del dato que esta en la memoria, en la direccin que indican los dos ltimos
bytes; en este caso vuelve a ser 5000H pero podra ser otra direccin.

I3 = 2B060650 = cdigo de maquina (2B06) + direccin del dato (0650)


2B06H= Ordena restar al numero contenido en AX, una copia del numero que en la
direccin de memoria que indican los dos ltimos bytes, o sea 5006H (transpuestos). El
resultado de esta operacin queda en el registro acumulador AX.

I4 = A31050 = cdigo de maquina (A3) + direccin de memoria (1050)


A3H= Ordena transferir hacia la posicin de memoria cuya direccin esta indicada en los
dos ltimos bytes (5010H), una copia del numero que esta en el registro AX.

A continuacin, mediante el Debug , vamos a guardar en la memoria, el programa de


computacin, definido como el conjunto de las instrucciones I1, I2, I3 I4, mas los datos P y
Q. La escritura la haremos en lenguaje de maquina (mediante su expresin hexadecimal),
en el segmento de 64 Kbytes, identificado como 19B0, cuya direccin absoluta de inicio es
19B00. Las instrucciones, las guardaremos a partir de la direccin relativa 0200H y los
datos, a partir de la direccin 5000H.

1) C:\> Debug

2) _ (Aparece guin titilante, indicndonos que Debug espera comandos)

3) _ E 19B0 : 0200

4) 19B0 : 0200 25.A1 F2.00 CF.50 AA.03 12.06 AD.00 2A.50


19B0 : 0208 26. 2B 22.06 54.06 12.50 00.A3 B1.10 BF.50
Cuando ejecutamos el punto 3, aparece en la pantalla, lo indicado en 4, con el primer
contenido en la memoria, que en este caso es 25; seguidamente a este valor, escribimos los
dos primeros bytes nuevos a cargar que corresponden a las instrucciones. Pulsamos la tecla
del tabulador y seguirn apareciendo los siguientes bytes que de la misma manera los

______________________________________________________________________ 26
Apunte de ctedra Autor: Ing. Domingo C. Guarnaschelli
UTN REG. SANTA FE ELECTRONICA II ING. ELECTRICA
7-1 Arquitectura y funcionamiento de las computadoras
------------------------------------------------------------------------------------------------------------
reemplazaremos por los correspondientes a las instrucciones. Los bytes de lasa
instrucciones, se guardan uno a continuacin del otro, hasta completar la s instrucciones
I1, I2, I3 I4.
Para verificar si han quedado memorizados los bytes del programa, examinamos
nuevamente la memoria, a partir de la misma direccin donde comenzamos su
memorizacin.
5) _ E 19B0 : 0200

6) 19B0 : 0200 A1 00 50 03 06 00 50
19B0 : 0208 2B 06 06 12.50 A3 10 50
Seguidamente guardamos los datos de la misma forma que lo hemos echo para las
instrucciones, pero ahora a partir de la direccin relativa 5000H, dentro del mismo
segmento 19B0.

7) _ E 19B0 : 5000

8) 19B0 : 5000 FF.20 11.10 A1. 22. 12. A3 2B.40


19B0 : 5008 2A20 2B
Verificamos ahora si hemos introducidos correctamente los datos

9) _ E 19B0 : 5000

10) 19B0 : 5000 20 10 A1 22 12 A3 40


19B0 : 5008 20 2B

Una vez introducidos los datos e instrucciones, para que la Unidad de control pueda
ejecutar la operacin, debemos indicarle la direccin de inicio de la primera instruccin,
dentro del segmento. Esto lo podemos hacer colocando la direccin de inicio en el registro
puntero IP. Esto lo hacemos con el Debug, con el comando r, seguido de IP.

11) _ r IP (Al pulsar


, aparece IP con 0100; lo modificamos colocando el nuevo valor a
continuacin de los dos puntos
12) IP 0100
: 0200

Verifico a continuacin el estado de todos los registros de la PC que son accesibles para la
programacin
13) _ r
AX=0000 BX=0000 CX= 0000 DX= 0000 SP= FFEE BP=0000 SI=0000 DI=0000
DS= 19B0 ES=19B0 SS=19B0 CS=19B0 IP = 0200 NV UP EI PL NZ NA PE NC
19B0 : 0200 A10050 MOV AX [5000] DS : 5000 = 1020

______________________________________________________________________ 27
Apunte de ctedra Autor: Ing. Domingo C. Guarnaschelli
UTN REG. SANTA FE ELECTRONICA II ING. ELECTRICA
7-1 Arquitectura y funcionamiento de las computadoras
------------------------------------------------------------------------------------------------------------

Registro
acumulador
AX

Bus de ALU
datos
Registro 2
Operando
MP
Registro de
estado
Registros ubicados Seleccin
En la de la
Unidad de control operacin

RI A10050
RI: Registro de instrucciones
IP IP: Registro puntero
0200 CS: Registro segmento de cdigo
CS ALU: Unidad aritmtica y lgica
19B0

Modificado el registro puntero IP, con la direccin relativa 0200, del segmento 19B0, la
unidad de control buscara (en la fase de bsqueda) la primera instruccin a ejecutar, en la
direccin absoluta indicada por CS : IP. Para otro segmento, debemos modificar CS.En
el resumen del estado de los registros, Debug nos muestra que en esa direccin de la MP, se
encuentra la primera instruccin que guardamos, o sea A10050 (MOV AX [5000] en
asembler). La ejecucin de esta instruccin, lo hacemos con el comando T, seguido de

14) _ T (Ejecutamos la 1 instruccin)

AX = 1020 .
IP = 0203
19B0 : 0203 03060050 ADD AX ,[5000] DS : 5000 = 1020

15) _ T (Ejecutamos la 2 instruccin)

AX = 2040 .
IP = 0207
19B0 : 0207 2B060650 SUB AX ,[5006] DS : 5006 = 2040

16) _ T (Ejecutamos la 3 instruccin)

AX = 0000 .

______________________________________________________________________ 28
Apunte de ctedra Autor: Ing. Domingo C. Guarnaschelli
UTN REG. SANTA FE ELECTRONICA II ING. ELECTRICA
7-1 Arquitectura y funcionamiento de las computadoras
------------------------------------------------------------------------------------------------------------
IP = 020B
19B0 : 020B A31050 MOV [5000] ,AX DS : 5010 = FD11

17) _ T (Ejecutamos la 4 instruccin)

AX = 0000 .
IP = 0203
19B0 : 020E BB 1024 (Este es un valor cualquiera, dado que a partir de
020E no tenemos instrucciones)/
Para verificar que en las direcciones 5010 y 5011 se coloco el resultado que esta en AX
(0000), examinamos la memoria, en esas direcciones.

18) _ 19B0 : 5010

19B0 : 5010 00. 00.


Hemos constatado que la instruccin I4 se ha cumplido.

Nota: Los programas de las computadoras terminan con una instruccin, denominada de
salto, cuyo cdigo ordena que se pase a ejecutar un programa del sistema operativo, para
que ste, decida cual es el prximo programa que debe ejecutarse.

Las instrucciones I1 I2 I3 I4 que las ejecutamos paso a paso, la podemos ejecutar


simultneamente una a continuacin de la otra como lo hace la computadora en el proceso
real. Para ello, utilizamos el comando G de Debug, con la indicacin de las direcciones
de comienzo y final del conjunto de instrucciones a ejecutar/
19) _ R IP
: 0200
_R
AX : 0000..
19B0 : 0200 A10050 MOV AX ,[5000]

_ G 0200 020E (Es una orden para el Debug, no para el procesador)


AX : 0000
IP = 020E

En el ejemplo que hemos desarrollado, la Unidad de Control (UC), tiene como principal
funcin, dar ordenes de operaciones de lectura o escritura a la Memoria Principal (MP), y
o registros de la Unidad Central de Proceso (UCP), y ordenar que operacin debe hacer la
Unidad Aritmtica y Lgica (UAL). La UC controla, dando ordenes a esos dispositivos,
de all su nombre.
La UCP esta estructurada para que repita permanentemente una secuencia de pasos con las
instrucciones del programa a ejecutar, programa que se encuentra memorizado en la MP.
Para el caso de la instruccin I1, los pasos que se realizan, son los siguientes:

1) Obtener la instruccin de la MP: La direccin en la MP donde comienza el cdigo de


maquina de la instruccin a ejecutar, se encuentra en el registro puntero o contador de

______________________________________________________________________ 29
Apunte de ctedra Autor: Ing. Domingo C. Guarnaschelli
UTN REG. SANTA FE ELECTRONICA II ING. ELECTRICA
7-1 Arquitectura y funcionamiento de las computadoras
------------------------------------------------------------------------------------------------------------
programa IP. Para direccionar la memoria (seleccionarla) y leerla, por la lnea de control
L/E (que forma parte del bus de control) se coloca un 1. Por otra parte, una copia de la
direccin contenida en IP pasa al registro RDI que esta conectado al bus de direcciones y a
travs de este bus esa direccin se llega al registro de entrada de la MP. Esta ultima lo
decodifica y localiza la instruccin (I1) que aparece en la salida de la MP que esta
conectada al bus de datos. Por este bus, se transmite al registro RDA (registro de datos),
conectado al bus de datos, y finalmente del RDA al registro de instrucciones RI. En nuestro
ejemplo, RI se carga con I1A10050.

2) Decodificacin: Cuando el cdigo de maquina de la instruccin llega al registro RI, el


cdigo de operacin (A1) es decodificado por la UC, o sea es detectado por los circuitos de
la UC, y su combinacin particular de unos y ceros, desencadena una secuencia de
acciones (micro ordenes) que ya han sido preparadas para esa combinacin, cuando se
diseo el procesador.

3) Obtencin del dato a operar: La UC pone un 1 en la lnea de control L/E y ordena


una copia del contenido de la MP en la direccin formada por los dos bytes del cdigo de
maquina que siguen al cdigo de operacin (A1), que en este caso es 0050 pero
transpuestos (5000), con lo cual dicha direccin se coloca en RDI, de all pasa al bus de
direcciones y llega al registro de direcciones de MP. Esta ultima, enva juntos los
contenidos de la posicin direccionada y de la siguiente (5000H y 5001H) o sea el dato
1020H, que llega por el bus de datos al registro RDA.

4) Realizar la operacin: En este caso la instruccin I1 (A1) ordena transferir desde MP


hacia AX un dato. AX, es uno de los registros de la UAL (registro acumulador). Como el
dato ya se encuentra ubicado en RDA, solo resta pasar dicho dato a AX, donde queda
almacenado.

5) Modificacin del registro contador de programa IP: En la UAL, se debe sumar al


contenido del registro IP, la cantidad de bytes que ocupa la instruccin ejecutada (en este
caso 3, A1 00 50) y reemplazar el valor anterior (0200) por el resultado de la suma (0203).
De esta forma con el IP actualizado, tenemos la direccin de la prxima instruccin a
ejecutar (I2), repitindose los pasos anteriores, hasta completar el programa.

Obtener Decodificar Obtener dato a Realizar


instruccin operar operacin

Obtener nueva instruccin con el valor de IP actualizado

______________________________________________________________________ 30
Apunte de ctedra Autor: Ing. Domingo C. Guarnaschelli
UTN REG. SANTA FE ELECTRONICA II ING. ELECTRICA
7-1 Arquitectura y funcionamiento de las computadoras
------------------------------------------------------------------------------------------------------------
La UAL y el registro de estado

La unidad aritmtica y lgica (UAL), realiza operaciones aritmticas de suma, resta,


multiplicacin y divisin de nmeros enteros. Adems realiza operaciones lgicas con
AND, OR y NOT. Tambin realiza comparaciones de dos nmeros, para establecer si son
mayores iguales o menores. La UAL no tiene inteligencia de tipo deductivo como lo
puede insinuar su nombre, solamente realiza operaciones ordenadas mediante instrucciones
de un programa, sin tomar ninguna resolucin, en funcin del resultado de las operaciones.
La UAL, junto con el resultado de las operaciones, genera unos indicadores, denominados
Flag o banderas. Estos indicadores, que pueden valer cero o uno, nos dan un pequeo
resumen de las caractersticas de los resultados. Estos indicadores estn ubicados en el
denominado registro de estado, y son esenciales para determinar, en funcin de uno o
varios de ellos, la condicin para que la UC pase a ejecutar otra instruccin distinta de la
que corresponde, por orden sucesivo de escritura de las instrucciones en memoria.
Uno de estos indicadores se denomina Z(cero), y vale 1(ZR) si el resultado de la
operacin fue cero; vale 0(NZ), si el resultado no fue cero. El indicador S (signo para
enteros) vale 1 (NG) si el resultado fue negativo y vale 0 (PL), si el resultado fue
positivo. El indicador V (over flow) vale 1 (OV) si el resultado como numero entero
supera el mximo valor representable; caso contrario vale 0 (NV).

Las instrucciones de salto

El grupo de instrucciones que hace que se altere el flujo de ejecucin sucesivo, de las
instrucciones, dentro de un programa, se denominaninstrucciones de salto. Existen dos
tipos de instrucciones de salto. La instruccin Jmp (en asembler) altera el flujo de
ejecucin, enviando el control en forma incondicional a la direccin indicada. Estas
instrucciones, se denominan de salto incondicional. Las otras instrucciones de salto, se
denominan de salto condicional. Estas, realizan bifurcaciones del programa principal,
segn el estado que tengan algunos bits del registro de estado. Ejemplo de estas
instrucciones son Jnz (salta si el resultado es mayor o menor a cero) y la instruccin
Jz, que realiza un salto si el resultado es cero.
A continuacin y como ejemplo realizaremos un programa en lenguaje de maquina
tomando el primer ejemplo donde se le intercalara una instruccin de salto, que
denominaremos IS. Esta instruccin, ser de salto condicional, utilizando para ello la
instruccin Jnz, que indica saltar, si el resultado de la operacin no fue cero (indicado
con la bandera Z con cero (NZ)).
Operacin: R = P + P Q
Instrucciones:
I1(A15000): Cargar el registro AX (acumulador), el dato ubicado en la direccin 5000 (P)
I2(0306500):Sumar al registro AX el dato que esta en la direccin 5000 (P+P)
I3(2B065006):restar a AX el dato que esta en la direccin 5006 (P+P-Q)
I4S(7508):Es una instruccin de salto condicionada. Si como resultado de la instruccin
anterior (I3) el indicador de cero (Z) vale 1 (ZR), o sea el resultado vale cero, la prxima
instruccin a ejecutar es la escrita a continuacin en la memoria (I4). Si el resultado es
distinto de cero (NZ), saltar a ejecutar la instruccin I5 que esta en la direccin que resulta
de sumar a la direccin de la instruccin I4,el valor indicado en la instruccin I4S.

______________________________________________________________________ 31
Apunte de ctedra Autor: Ing. Domingo C. Guarnaschelli
UTN REG. SANTA FE ELECTRONICA II ING. ELECTRICA
7-1 Arquitectura y funcionamiento de las computadoras
------------------------------------------------------------------------------------------------------------
I5: Es similar a I4 pero el numero se guarda en las direcciones 5012H y siguiente.
A continuacin, almacenaremos las instrucciones y datos en la memoria y ejecutaremos las
instrucciones una por vez. Para el primer caso, tomaremos:
P 1020, Q 2040 R1 = 0000 (5010H 00, 5011H 00)
P 1020, Q 203F R2 = 0001 (5012H 01, 5013H 00)

Representacin contenidos y direcciones de memoria del ejemplo

0200 A1 0211
0201 00 I1
0202 50
5000 20
0203 03 P
5001 10
0204 06 Zona
I2 De
0205 00
datos
0206 50 5006 40
Q
0207 2B 5007 20
0208 06
I3
0209 06
5010 00
020A 50 R1
Zona 5011 00
020B 75 Resultados
I4S De 5012 01
020C 08 programa R2
5013 00
020D A3
020E 10
I4
021F 50
0210 XX
0211 XX
0212 XX
0213 XX
0214 XX
0215 A3
I5
0216 12
0217 50
0218

______________________________________________________________________ 32
Apunte de ctedra Autor: Ing. Domingo C. Guarnaschelli
UTN REG. SANTA FE ELECTRONICA II ING. ELECTRICA
7-1 Arquitectura y funcionamiento de las computadoras
------------------------------------------------------------------------------------------------------------
Registros de la Unidad Central de proceso que se utilizan para la programacin

Tomaremos como referencia a los microprocesadores 80x80 y 80x86 (Intel). Estos registros
son los nicos accesibles que se pueden visualizar y modificar; se utilizan para la
realizacin de los programas. A travs del programa Debug del sistema operativo DOS,
podemos acceder a ellos. Dentro del programa Debug, seguido al guin titilante, si
tipeamos el comando r (registros) y luego (enter), podemos visualizarlos:

1) C:\> Debug

2) _ r

Lnea 1
AX=0000 BX=0000 CX= 0000 DX= 0000 SP= FFEE BP=0000 SI=0000 DI=0000
Registros
de pila
Registros de uso general

Lnea 2

DS= 19B0 ES=19B0 SS=19B0 CS=19B0 IP = 0200 NV UP EI PL NZ NA PE NC


Registro
Registros de segmento puntero Registro de estado

Linea 3

19B0 : 0200 A10050 MOV AX [5000] DS : 5000 = 1020


Instruccin a Direccin y
ejecutarse en contenido dato
nemotcnico
(Asembler)

Cdigo hexadecimal de la instruccin a ejecutar


Direccin de la siguiente instruccin a ser ejecutado

Para estos microprocesadores, se disponen de 14 registros internos, cada uno de 16 bits


(para el 386 y 486, son de 32 bits). Los primeros cuatro, AX, BX, CX y DX, son registros
de uso gral. y se pueden usar como registros de 8 bits. Por ejemplo AX se puede dividir en
AH (byte alto) y AL (byte bajo). Estos son los nicos registros que se pueden usar como
dual.

AX, BX, CX, DX: Registros de uso gral.


BP, SP: Registros de apuntadores
SI, DI: Registros ndice.
CS, DS, SS, ES: Registros de segmento.
IP: Registro apuntador de instrucciones.
NV UP EI PL NZ NA PO NC: Registro de bandera o registro de estado.

______________________________________________________________________ 33
Apunte de ctedra Autor: Ing. Domingo C. Guarnaschelli
UTN REG. SANTA FE ELECTRONICA II ING. ELECTRICA
7-1 Arquitectura y funcionamiento de las computadoras
------------------------------------------------------------------------------------------------------------
Registros de uso gral.

AX (registro acumulador): Se usa para almacenar resultados de operaciones, de lectura o


escritura desde o hacia los puertos y como rea de memoria temporal (Scratch pad).

BX (registro base): Sirve como registro apuntador base o ndice; se usa para calcular
direcciones que acceden a la memoria.

CX (registro contador): Se utiliza constantemente en operaciones de repeticin, como un


contador que automticamente se incrementa de acuerdo con el tipo de instruccin usada.

DX (registro de estado): Sirve como deposito para las direcciones de los puertos. En
combinacin con AX, se utiliza para designar cantidades de 32 bits (DX:AX). Se lo utiliza
tambin en combinacin con DS (DS:DX). Tiene aplicacin en operaciones con
interrupciones.

Registros apuntadores
Son registros que apuntan a una localidad de memoria en gral.

BP (registro apuntador de base): Se usa para manipular la informacin que se encuentra


en la pila (memoria LIFO: primero en entrar, ultimo en salir), sin afectar al registro de
segmento SS. Es til cuando se usa la interfaz entre lenguaje de alto nivel y el ensamblador.
SP ( registro apuntador de pila): Se usa junto con el SS (registro segmento de pila) para
crear en memoria una estructura llamada Pila (Stack).

Registros ndice

SI (registro ndice fuente) y DI (registro ndice destino): Se utilizan para manejar


bloques de cadenas en memoria. SI, representa la direccin donde se encuentra la cadena, y
DI donde ser copiada. Se los utiliza en operaciones en cadena con la instruccin MOVSD.

Registros de segmento

CS ( registro de segmento de cdigo): Se encuentra asociado al cdigo de programa o sea


controla al cdigo de los programas y tiene como socio al registro IP. CS : IP da la
siguiente instruccin a ser ejecutada.

DS (registro del segmento de datos): Indica el segmento donde se encuentran los datos.

ES ( registro de segmento extra): Sirve como colchn para ampliar el segmento de


datos.

SS ( registro del segmento de pila): Tiene la funcin de controlar el rea (segmento)


donde se creara la pila (Stack).

IP (registro apuntador de instrucciones): Se lo usa en conjunto con el CS ( CS : IP ).

______________________________________________________________________ 34
Apunte de ctedra Autor: Ing. Domingo C. Guarnaschelli
UTN REG. SANTA FE ELECTRONICA II ING. ELECTRICA
7-1 Arquitectura y funcionamiento de las computadoras
------------------------------------------------------------------------------------------------------------
Los registros BP, SS y SP, trabajan con la pila (Stack).

Registro de estado o registro de banderas

Banderas prendidas (1) OV DN EI NG ZR AC PE CY


Banderas apagadas (0) NV UP DI PL NZ NA PO NC

Overflow:
NV : no hay desbordamiento
OV: si lo hay.

Direction:
UP: hacia delante
DN: Hacia atrs.

Interrupciones:
DI: Desactivadas
EI: Activadas

Signo:
PL: positivo
NG: Negativo.

Zero:
NZ: No es cero
ZR: Si lo es

Auxiliary Carry:
NA: no hay acarreo aux.
AC: hay acarreo aux.

Parity:
PO: No hay paridad.
PE: Paridad par.

Carry:
NC: No hay acarreo
CY: Si lo hay.

CONCEPTOS GRALES SOBRE PROGRAMACIN EN LENGUAJE ASEMBLER

Como hemos visto, el lenguaje que interpreta y ejecuta una computadora, es el de ceros y
unos elctricos, denominado lenguaje de maquina. Este lenguaje es valido tanto para
los datos, direcciones e instrucciones.
Si quisiramos desarrollar un programa en este lenguaje de ceros y unos, su elaboracin,
como lo hemos experimentado, resulta muy lenta y engorrosa. No obstante, programas de

______________________________________________________________________ 35
Apunte de ctedra Autor: Ing. Domingo C. Guarnaschelli
UTN REG. SANTA FE ELECTRONICA II ING. ELECTRICA
7-1 Arquitectura y funcionamiento de las computadoras
------------------------------------------------------------------------------------------------------------
computacin especiales como el DEBUG, residente en el sistema operativo DOS de
una PC, nos permitieron elaborar y ejecutar programas cortos, en lenguaje de maquina,
grabndolos directamente en la memoria RAM.
El lenguaje ensamblador, es una variante (legible para el ser humano) del lenguaje de
maquina, que usan las computadoras para ejecutar programas. Es el lenguaje de mas bajo
nivel, despus del lenguaje de maquina..
Los lenguajes BASIC, FORTRAN, COBOL, etc. Son de mas alto nivel que el lenguaje
Ensamblador (o Asembler ).
Este lenguaje de programacin, le da facilidades y herramientas necesarias para que se
pueda controlar todo lo que la PC puede realizar fsicamente.
El ensamblador, resulta indispensable cuando se desea escribir programas que controlen la
entrada / salida de datos, agregar nuevas interfases de entrada / salida, escribir rutinas
optimizadas de un procedimiento etc.
El set de instrucciones que manejan los microprocesadores y microcontroladores, estn
expresados en lenguaje Asembler y en cdigo hexadecimal.

Estructura del Ensamblador:


Habamos visto que una instruccin (su formato), presenta
una parte que es el cdigo de operacin o de comando y la otra parte representa los datos.
En Asembler, el cdigo de operacin, se representa por dos, tres, o cuatro letras (nombres
mnemnicos), representando la funcin especifica que habr de realizar la unidad de
control (UC). La segunda parte representan los operandos. Algunas instrucciones no
requieren operandos.
Los operandos comprenden dos partes: Destino y fuente.
Ejemplo:
MOV AX, 01 = B8 01 (hex)
Operando: destino (AX) , fuente (01)

Esta instruccin escrita en asembler, el cdigo de operacin (MOV) es mover o


desplazar. Los operandos son AX y 01 y se interpreta como mover al registro AX, el dato
hexadecimal 01.

Herramientas necesarias para programar en Asembler:


La programacin, en cualquier
lenguaje que se realice, necesita al menos tres herramientas: Un editor de textos para
crear el archivo fuente, un compilador para convertirlo en archivo objeto y un
enlazador (Linker), para generar finalmente el programa ejecutable
Una cuarta herramienta seria el depurador (Debugger), que sirve como soporte para
verificar, depurar y en caso necesario corregir el programa ejecutable.
La programacin en lenguaje Ensamblador, no es la excepcin y tambin necesita las
herramientas anteriores.
Archivo fuente: Para generar este archivo, podemos usar cualquier editor de textos
(Por ejemplo el Edit, del DOS, Bloc de Notas Windows). Al usar el editor de texto se forma
el archivo fuente que contiene todas las instrucciones que conforman el programa, en el
formato ensamblador.

______________________________________________________________________ 36
Apunte de ctedra Autor: Ing. Domingo C. Guarnaschelli
UTN REG. SANTA FE ELECTRONICA II ING. ELECTRICA
7-1 Arquitectura y funcionamiento de las computadoras
------------------------------------------------------------------------------------------------------------
Archivo objeto: Este archivo intermedio (con extensin. OBJ), lo genera el programa
ensamblador que en este caso es el MASM. Para ello el programa fuente debe tener
extensin .ASM. Este archivo en formato OBJ, no es ejecutable por el DOS. Este archivo
decodifica las lneas del programa en secuencias de caracteres separados, como as tambin
se definen los segmentos y direcciones.
Archivo ejecutable: Partiendo del archivo objeto, el enlazador (Linker) arma las
estructuras necesarias que necesita el cargador o sea el programa que carga el programa
ejecutable en memoria.
Con la finalidad de asimilar los conceptos generales de la programacin, con el uso del
lenguaje Asembler (lenguaje de las instrucciones nemotcnicas), realizaremos un programa
similar al que hemos realizado en lenguaje de maquina. Para ello, utilizaremos como
ensamblador, al Debug. Este programa tiene el comando A (direccin) que nos permite
grabar en la memoria, el programa a crear en ensamblador. Por ejemplo A CS : IP. Si
no definimos la direccin, Debug coloca la direccin actual (por defecto).
Veamos los pasos que debemos seguir:

1) C:\> Debug
2) _ A
3) 19A5 : 0100 _ ( Debug se encuentra listo para recibir instrucciones)
4) 19A5 : 0100 _MOV AX,1020 (El dato se guarda en el registro AX)
5) 19A5 : 0103 _MOV [5000], AX (El contenido de AX se guarda en 19A5 : 5000)
6) 19A5 : 0106 _MOV AX, 2040 (El dato 2040 se guarda en el registro AX)
7) 19A5 : 0109 _MOV [5006], AX (El contenido de AX se guarda en 19A5 : 5006)
8) 19A5 : 010C _MOV AX, [5000] (Cargo en AX, el contenido de la direcc. 5000)
9) 19A5 : 010F_ADD AX, [5000] (Sumo a AX, el dato contenido en 5000)
10)19A5 : 0113 _SUB AX, [5006] (Resto a AX el dato contenido en 5006)
11)19A5 : 0117 _MOV [5010], AX (Llevo el contenido de AX a la direcc 5010 de MP)
12)19A5 : 011A _INT 20
13)19A5 : 011C_
14) _

Para ejecutar el programa anterior usamos el comando G (direccin). Este comando, le


indica al Debug que ejecute todas las instrucciones, a partir de CS : IP (el valor que tenga),
hasta la instruccin, por ejemplo 011A .
14)_ G 011A
15)
AX=0000 BX=0000 CX= 0000 DX= 0000 SP= FFEE BP=0000 SI=0000 DI=0000
DS= 19A5 ES=19B0 SS=19A5 CS=19A5 IP = 0200 NV UP EI PL NZ NA PE NC
19A5 : 011A A10050 INT 20 DS : 0000 = 0000

En cuanto la ejecucion llega a "011A", Debug despliega los resultados parciales (el
contenido actual de los registros).
Al ejecutar el comando G, Debug ejecuta la instrucciuon "INT 20" y regresa el control con
el siguiente mensaje :

______________________________________________________________________ 37
Apunte de ctedra Autor: Ing. Domingo C. Guarnaschelli
UTN REG. SANTA FE ELECTRONICA II ING. ELECTRICA
7-1 Arquitectura y funcionamiento de las computadoras
------------------------------------------------------------------------------------------------------------
16)_ G
Programa terminado normalmente

Resumiendo, con el comando G, con una direccin, Debug ejecuta todas las instrucciones
previas, haciendo una pausa en sta (INT 20 H). A cada direccin especificada en el
comando G, se le denomina direccin de pausa (Breakpoint addres), permitiendo ver la
ejecucin del programa por partes.
Existe un comando en el Debug, t (Trace) que nos permite ejecutar una instruccin por
vez.
Debug tiene un comando "U", que desemsambla lo que se digito como codigo
nemotecnico. Para ello debemos especificar la direccion de inicio y la longitud del
programa, que para nuestro ejemplo vale L = 011C 0100 = 001C.
14) (esto lo hacemos a partir del punto 14 del ejemplo anterior)
_ U100 L1C
19B0 : 0100 B82010 MOV AX, 1020
19B0 : 0103 A30050 MOV [5000],AX
19B0 : 0106 B84020 MOV AX,2040
19B0 : 0109 A30650 MOV [5006],AX
19B0 : 010C A10050 MOV AX,[5000]
19B0 : 010F 03060050 ADD AX,[5000]
19B0 : 0113 2B060650 SUB AX,[5006]
19B0 : 0117 A31050 MOV [5010],AX
19B0 : 011A CD20 INT 20
_
El listado anterior, nos da el formato segmento: la direccin en MP, el cdigo, en
hexadecimal, correspondiente a la instruccin y por ultimo, el cdigo de operacin
(nemotcnico).

Grabacin en disco rgido de un programa

El programa bsico generado en asembler con el Debug, vamos a guardarlo como un


archivo en el disco rgido, para un posterior uso, similar a los de uso corriente en las PC.
Para realizarlo con el Debug, debemos realizar los siguientes pasos:
1) Desde el smbolo del sistema (en el directorio C o en otra subcarpeta del C) se invoca
al Debug.
2) Con el comando A, escribimos el programa en lenguaje asembler.
3) Con el comando H, obtenemos la suma y la resta entre la direccin siguiente a la
ltima del programa, y la de inicio del programa. El valor que nos interesa, es la diferencia,
dado que nos brindara la cantidad de bytes que ocupa el programa, o sea la longitud del
programa. Para nuestro ejemplo, la direccin de inicio, es la 0100, y la siguiente a la ltima
del programa, es la 011C. Luego resulta L = 011C 0100 = 001C.
4) Con el comando "N", le debemos dar un nombre al programa, que incluya la "via" y la
extension, que en el caso del Debug, corresponde ".COM".
5) Con el valor de la longitud del programa "L", cargamos el registro CX.
6) Con el comando "W", damos la orden de escritura.

______________________________________________________________________ 38
Apunte de ctedra Autor: Ing. Domingo C. Guarnaschelli
UTN REG. SANTA FE ELECTRONICA II ING. ELECTRICA
7-1 Arquitectura y funcionamiento de las computadoras
------------------------------------------------------------------------------------------------------------
Ejemplo:
Vamos a guardar el programa anterior, con el nombre de PRUEBA.COM.
Comenzaremos desde el principio escribiendo, con el comando A, el programa en la
carpeta EJEMPLOS perteneciente al directorio C. Previamente, debemos crear esta
carpeta, ya sea con el Windows o con las instrucciones o lneas de comando del sistema
operativo MS DOS. En este ejemplo, utilizaremos en su totalidad, el sistema operativo MS
DOS, haciendo notar que el objetivo de este desarrollo, es simplemente conceptual, para el
aprendizaje del funcionamiento interno de las computadoras.

1)
C:\> MD EJEMPLOS (con MD creamos la carpeta EJEMPLOS)
C:\> CD EJEMPLOS (con CD nos posicionamos en la carpeta EJEMPLOS)
C:\ EJEMPLOS >_ (estamos en la carpeta Ejemplos)
C:\ EJEMPLOS >Debug (invocamos al DEBUG desde la carpeta EJEMPLOS)
_ (Guin titilante, indicndonos que el DEBUG esta listo para recibir comandos)
2)
_ A (con el comando A podemos escribir el programa)
19A5 : 0100 _ ( Debug se encuentra listo para recibir instrucciones)
19A5 : 0100 _MOV AX,1020 (El dato se guarda en el registro AX)
19A5 : 0103 _MOV [5000], AX (El contenido de AX se guarda en 19A5 : 5000)
19A5 : 0106 _MOV AX, 2040 (El dato 2040 se guarda en el registro AX)
19A5 : 0109 _MOV [5006], AX (El contenido de AX se guarda en 19A5 : 5006)
19A5 : 010C _MOV AX, [5000] (Cargo en AX, el contenido de la direcc. 5000)
19A5 : 010F_ADD AX, [5000] (Sumo a AX, el dato contenido en 5000)
19A5 : 0113 _SUB AX, [5006] (Resto a AX el dato contenido en 5006)
19A5 : 0117 _MOV [5010], AX (Llevo el contenido de AX a la direcc 5010 de MP)
19A5 : 011A _INT 20
19A5 : 011C_ (Direccin siguiente a la ultima direccin del programa)
3)
_H011C 0100 (Con el comando H, obtengo la suma y diferencia entre 011C y 0100)
021C 001C (suma y diferencia respectivamente)
4)
_N PRUEBA.COM (Con el comando N, le asignamos al programa el nombre, sin va de
acceso, dado que la carpeta actual es EJEMPLOS.)
5)
-R CX (con ste comando invocamos al registro CX)
CX 0000
: 001C (despus de los dos puntos escribimos en CX la longitud del programa)
6)
-W (Con el comando W escribimos en el disco rgido el programa)
Escribiendo 0001C bytes
-
Por ltimo para estar seguro que el programa fue cargado, salimos del DEBUG, para luego
entrar nuevamente, desde el directorio C con la va correspondiente o desde la carpeta
donde esta guardado el programa. Para invocarlo, lo hacemos con el comando N, indicando

______________________________________________________________________ 39
Apunte de ctedra Autor: Ing. Domingo C. Guarnaschelli
UTN REG. SANTA FE ELECTRONICA II ING. ELECTRICA
7-1 Arquitectura y funcionamiento de las computadoras
------------------------------------------------------------------------------------------------------------
luego con U, la direccin de inicio y con L, la longitud del programa. Veamos esta
comprobacin, invocando al DEBUG, desde la carpeta EJEMPLOS:
C:\ EJEMPLOS >Debug
_N PRUEBA.COM
_U100 L1C
19B0 : 0100 B82010 MOV AX, 1020
19B0 : 0103 A30050 MOV [5000],AX
19B0 : 0106 B84020 MOV AX,2040
19B0 : 0109 A30650 MOV [5006],AX
19B0 : 010C A10050 MOV AX,[5000]
19B0 : 010F 03060050 ADD AX,[5000]
19B0 : 0113 2B060650 SUB AX,[5006]
19B0 : 0117 A31050 MOV [5010],AX
19B0 : 011A CD20 INT 20
_

Con esto, hemos comprobado que el programa ha sido guardado correctamente. Tambin lo
podemos verificar, a travs de Windows. Para ejecutarlo, lo hacemos con el DEBUG, con
los mtodos, ya aplicados.

Las interrupciones de la unidad central de proceso (microprocesador)

De alguna manera, la UCP, tiene que estar conciente de lo que sucede a su alrededor. Esta
conciencia la adquiere mediante las interrupciones. Por ejemplo cuando un perifrico
necesita interaccionar con la UCP, lo hace mediante una entrada del microcircuito de
peticin de interrupcin. En el caso del teclado, cuando oprimimos una tecla, se produce
una interrupcin. La UCP detiene lo que esta haciendo, guarda la direccin actual en la
memoria pila (ultima en entrar, primera en salir), y pone atencin al teclado. Una vez
atendida esta interrupcin, la UCP retoma el programa que estaba ejecutando, previo a la
interrupcin, recuperando de la pila la direccin actual.
Otra interrupcin que ocurre aproximadamente 18 veces por segundo, es la que actualiza la
hora del da. Las interrupciones ocurren tan seguidas en la UCP de una PC, que necesita un
circuito integrado aparte, para establecer la prioridad de cada interrupcin. Una manera de
administrar las interrupciones, que se usa en el entorno del DOS, es mantener una tabla de
vectores en la memoria baja, empezando por la direccin 0(cero) y terminando en la 256
(decimal). Estos vectores interrupcin, sealan otra direccin de memoria donde la UCP
empieza a ejecutar el cdigo que all se encuentra.
Resumiendo, una interrupcin, es una bifurcacin a cierta direccin de la memoria (RAM o
ROM), donde la UCP iniciara la ejecucin de una serie de instrucciones, y al terminar,
regresa a la siguiente direccin de la instruccin que causo la interrupcin.
Las interrupciones se dividen en interrupciones de circuitos (hardware) e interrupciones
de programa (Software). Las interrupciones de programa a su vez se dividen en
interrupciones de BIOS e interrupciones del DOS.

______________________________________________________________________ 40
Apunte de ctedra Autor: Ing. Domingo C. Guarnaschelli

También podría gustarte