Documentos de Académico
Documentos de Profesional
Documentos de Cultura
ELECTRICA
7-1 Arquitectura y funcionamiento de las computadoras
------------------------------------------------------------------------------------------------------------
FUNCIONAMIENTO DE LAS COMPUTADORAS
Datos externos
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.
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 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
Este tiene la particularidad de ser automtico. En este proceso automtico, estn presentes
cuatro subprocesos:
______________________________________________________________________ 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
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
------------------------------------------------------------------------------------------------------------
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
______________________________________________________________________ 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 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.
______________________________________________________________________ 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.
Bus de direcciones
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.)
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)
______________________________________________________________________ 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
______________________________________________________________________ 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).
Resultado
Registro
acumulador
Unidad
Bus aritmtica
de y lgica
datos Registro
Registro 2 de estado
operando
Seleccin de la operacin
1 nibble = 4 bits
1 byte = 8 bits
______________________________________________________________________ 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.
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
------------------------------------------------------------------------------------------------------------
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
------------------------------------------------------------------------------------------------------------
______________________________________________________________________ 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.
______________________________________________________________________ 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
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.
______________________________________________________________________ 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).
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
______________________________________________________________________ 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
------------------------------------------------------------------------------------------------------------
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
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 .
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
R=P+PQ
P = 1020 H (Hexadecimal)
Q= 2040 H
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:
1) C:\> Debug
3) _ E 19B0 : 0200
______________________________________________________________________ 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
9) _ E 19B0 : 5000
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.
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
AX = 1020 .
IP = 0203
19B0 : 0203 03060050 ADD AX ,[5000] DS : 5000 = 1020
AX = 2040 .
IP = 0207
19B0 : 0207 2B060650 SUB AX ,[5006] DS : 5006 = 2040
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
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.
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.
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:
______________________________________________________________________ 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.
______________________________________________________________________ 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
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)
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
Linea 3
______________________________________________________________________ 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.
BX (registro base): Sirve como registro apuntador base o ndice; se usa para calcular
direcciones que acceden a la memoria.
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.
Registros ndice
Registros de segmento
DS (registro del segmento de datos): Indica el segmento donde se encuentran los datos.
______________________________________________________________________ 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).
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.
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.
______________________________________________________________________ 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) _
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).
______________________________________________________________________ 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.
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