LUISM - Microprocesadores

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 12

República Bolivariana de Venezuela

Instituto Universitario de tecnología

“Antonio José de Sucre”

Ampliación-Charallave

MICROPROCESADORES

Alumno:

Luis Cornieles

C.I: 27.218.652

octubre, 2020
En general, el término “microprocesador”, remite al dispositivo
principal dentro de las computadoras digitales, es decir, al elemento
encargado de realizar los cálculos que permiten desde escribir una carta
hasta editar una fotografía; desde administrar una nómina hasta platicar
en tiempo real con alguna persona al otro lado del mundo; desde disfrutar
una película hasta controlar complejos procesos industriales; en fin, el
concepto de “microprocesador” evoca un dispositivo de enorme poder de
cálculo, relativamente costoso, que consume mucha potencia y que, por
tanto, sólo está al alcance de pocas personas.
Sin embargo, la realidad es muy distinta. En un hogar típico,
existen una enorme cantidad de microprocesadores, realizando diversas
tareas que buscan facilitar la vida diaria de los usuarios. Se encuentran en
el televisor, en el equipo de sonido, en el reproductor de DVD, en los
teléfonos celulares, ¡incluso en un control remoto o en un reloj de cuarzo
existen microprocesadores! Y es que esta tecnología se ha abaratado a
tal grado que muchas aplicaciones que antes requerían el uso de varios
dispositivos individuales, ahora se pueden realizar con más facilidad y de
manera más económica con la aplicación de un microprocesador, o de su
variante, un microcontrolador.
Esto significa que los microprocesadores y microcontroladores se
han convertido en parte de la vida diaria, y esto a su vez implica que
cualquier persona interesada en el área de la electrónica o del control
debe saber cómo funcionan y cómo se aplican estos dispositivos.
Precisamente, el objetivo de este libro es proporcionar los principios
básicos de los microprocesadores y microcontroladores, combinando la
teoría y la práctica.
COMPONENTES BÁSICOS DE UNA COMPUTADORA DIGITAL
Si bien las computadoras digitales han salido de los laboratorios de
investigación y de las grandes empresas, para llegar a los hogares y a las
oficinas; esto ha sido el resultado de largos años de trabajo de múltiples
compañías alrededor del mundo, que desarrollaron componentes cada
vez más confiables, pequeños y económicos, al grado de que en la
actualidad, una computadora con una potencia de cálculo que hace un
par de décadas habría costado cientos de miles de dólares, ahora se
puede obtener por menos de mil dólares, convirtiéndose en una
herramienta indispensable para realizar trabajos diarios. Al observar una
computadora moderna, pocos imaginan la enorme cantidad de elementos
que tienen que trabajar en estrecha colaboración para que este
dispositivo realice adecuadamente su labor. Desde el punto de vista
exclusivamente físico, se necesitan una gran cantidad de componentes
que, al ser ensamblados adecuadamente, dan el soporte para la
ejecución de complejos programas de software, y la combinación de
hardware y software es lo que hace de una computadora digital, un
auxiliar invaluable en las labores cotidianas. En la siguiente figura, se
muestran los componentes básicos de una computadora personal (PC)
moderna. A continuación se describe brevemente qué es cada una de
estas partes, y su función principal.
En realidad, una computadora opera alrededor de un elemento
central, que es la tarjeta madre; en este elemento se concentran todos los
protocolos de comunicación que permiten la interacción de los distintos
componentes, así que funciona como una especie de “estación de tránsito
principal” para canalizar los datos desde y hacia todos los elementos que
sean necesarios.
En esta tarjeta madre se instala el microprocesador, el cual es el
encargado de realizar todos los cálculos indicados en el software que se
estén ejecutando. Este dispositivo determina la potencia de cómputo del
equipo, y se considera como la pieza individual más importante dentro de
una computadora personal.
Para poder almacenar temporalmente todos los datos que necesita
para trabajar, el microprocesador requiere de una memoria RAM, y la
capacidad de esta última determina la complejidad de los programas o de
los datos que puede manejar una PC. Como en la memoria RAM sólo
pueden guardarse datos en forma temporal (cuando se apaga el equipo,
se pierde la información que contiene), se requieren de otros medios de
almacenamiento más permanentes para guardar el sistema operativo, los
programas y los datos que vaya generando el usuario, y para ello está un
disco duro y una unidad de discos ópticos. Estos tres elementos, RAM,
disco duro y unidad óptica, son los principales medios de almacenamiento
de datos de una computadora personal, aunque no son los únicos. Para
introducir las órdenes del usuario, es necesario tener elementos
especiales, como el teclado y el ratón. A estos elementos recientemente
se les ha añadido un micrófono, una cámara web, un escáner, etc., pero
incluso en la actualidad, estos últimos componentes aún se consideran
como equipo opcional, mientras que el teclado y el ratón son elementos
indispensables en cualquier computadora moderna.
La computadora para poder presentar sus resultados al usuario,
también necesita elementos de salida de información, que por lo general
consisten en una tarjeta de video a la cual está conectado un monitor, y
una tarjeta de sonido (normalmente incluida en la tarjeta madre) de la que
salen un par de bocinas; con estos elementos, el usuario puede ver y
escuchar lo que está haciendo la máquina, y aprovecharlo ya sea para el
trabajo diario o para el entretenimiento.
Todo lo anterior está contenido en un gabinete, dentro del cual
también se encuentra la fuente de poder que se encarga de alimentar
adecuadamente a todos los componentes de la computadora. Se puede
indicar que esta es la estructura básica de una PC moderna, y aunque
poco a poco se le han añadido más elementos externos y/o internos, los
que se mencionaron son los elementos más importantes y que se
consideran indispensables, para que una computadora actual sea capaz
de ejecutar el software que la convertirá en una poderosa herramienta de
productividad o en un centro de entretenimiento de propósito general.

ELEMENTOS BÁSICOS DE UN MICROPROCESADOR


Resulta evidente la enorme importancia que tienen los dispositivos
digitales de cálculo en la sociedad moderna; así, no es una exageración
mencionar que el mundo sería muy distinto si estos componentes no
hubieran sido desarrollados. De hecho, la historia de los
microprocesadores es una larga sucesión de acontecimientos
afortunados, iniciados por dos grandes empresas a principios de la
década de los setenta del siglo pasado: Intel y Busicom, la primera
fabricante de circuitos integrados, y la segunda de calculadoras
electrónicas. Entre ambas empresas, desarrollaron el primer
microprocesador de la historia: el Intel 4004, un dispositivo de cuatro bits
que servía como “cerebro” de toda una línea de calculadoras de escritorio.
Seguramente, quienes diseñaron tan modesto dispositivo, el cual
apenas contaba en su interior con poco más de dos mil transistores,
nunca imaginaron que en unas cuantas décadas se tendrían
microprocesadores corriendo a miles de millones de ciclos por segundo, y
que en su interior contendrían cientos de millones de transistores
trabajando al unísono.
También existe un bus de control, que sirve para expedir o
introducir instrucciones al microprocesador, dependiendo de la operación
que se vaya a realizar; por ejemplo, aquí se encuentran las líneas que
determinan si un dato se va a leer o a grabar en la memoria RAM,
también se ubican las líneas de interrupción para detener un programa
que haya entrado en un ciclo interminable, etc. Como su nombre lo indica,
estas líneas de instrucción ejercen diversas tareas de control desde el
microprocesador hacia sus periféricos y viceversa, así que resultan
fundamentales para la correcta operación del dispositivo.
El bus de datos es la puerta de entrada y salida de los bits que se
procesarán dentro del microprocesador; por aquí se introducen las
instrucciones de programación que le indican a cada momento qué hacer
al dispositivo, también entran los datos que se usarán para realizar los
cálculos deseados, y por ahí salen los resultados obtenidos para ser
almacenados en memoria o expedidos por el puerto correspondiente. Se
puede decir que este bus es por donde circula toda la información con la
que trabaja el microprocesador, tanto la que entra como la que sale.
Finalmente, está el bus de direcciones, que sirve para que el
microprocesador pueda leer su memoria externa, o para determinar
exactamente qué dispositivo externo se utilizará en un momento dado.
Por ejemplo, cuando se está leyendo un programa, normalmente se inicia
la operación desde cierta dirección de memoria, y luego el control interno
del microprocesador va leyendo celdillas consecutivas de la memoria para
reunir todas las instrucciones necesarias para ejecutar lo que desea el
usuario, a menos que entre las instrucciones haya alguna que indique un
“salto” a otra dirección de memoria distinta.
Para funcionar, lo anterior necesita de una fuente de poder externa,
y también de una señal de reloj que sirva como referencia para la
ejecución de todas las operaciones internas. Esta es la estructura típica
de un microprocesador sencillo, aunque con el enorme desarrollo que han
tenido últimamente estos dispositivos, en los microprocesadores más
novedosos se han incrementado considerablemente el número y variedad
de bloques internos. Sólo como referencia, en la figura anexa se muestra
el diagrama a bloques de un microprocesador ARM-Cortex moderno, que
se utiliza en teléfonos inteligentes o en computadoras tipo tablilla.
Al observar la estructura de un microprocesador, se puede
distinguir una de sus grandes fortalezas, pero también una gran debilidad:
el microprocesador por sí mismo no sirve absolutamente para nada, ya
que no posee los elementos para realizar ninguna tarea. Para convertirse
en un dispositivo completamente funcional, requiere de una serie de
elementos externos, los cuales pueden ser elegidos cuidadosamente para
adaptarse a la aplicación específica que se esté buscando. Así, si el
microprocesador se usara para controlar un proceso industrial, puede
conectarse a sensores y actuadores que permitan el monitoreo continuo y
el control de los distintos pasos del proceso; si se usa para una consola
de videojuegos se rodea de los elementos necesarios para leer el juego
que se desee ejecutar, recibir las órdenes del usuario, y expedir la señal
de audio y video resultante hacia el televisor; y así sucesivamente. Esto
significa que, a pesar de que por sí mismo el microprocesador es
prácticamente inútil, cuando se rodea de los periféricos adecuados se
convierte en una poderosa herramienta, completamente flexible y que
puede aplicarse en múltiples situaciones muy distintas entre sí.

ELEMENTOS BÁSICOS DE UN MICROCONTROLADOR


Como ya se mencionó, los microprocesadores han invadido casi
todos los aspectos de la vida diaria; se encuentran en los televisores, en
los equipos de audio, en los teléfonos celulares, en los relojes de pulsera,
en el control remoto, en las calculadoras de bolsillo, en fin, prácticamente
en cualquier aparato electrónico en el hogar o la oficina; sin embargo,
estos aparatos tienen necesidades tan específicas que resultaría un
verdadero desperdicio colocar un microprocesador convencional, con
todos sus periféricos asociados, para realizar siempre las mismas tareas
una y otra vez; por ejemplo, en un control remoto, el microprocesador
dentro de este dispositivo lo único que tiene que hacer es monitorear su
teclado, y cuando detecta que una tecla se ha presionado, identifica cuál
orden está indicando el usuario, de este modo, busca en su memoria el
código correspondiente a esta orden, y expide los pulsos
correspondientes para que el LED infrarrojo se encienda en cierta
secuencia para enviar el comando hacia el aparato. Todo esto puede
hacerlo fácilmente un microprocesador, pero rodearlo de periféricos
diversos para que pueda funcionar haría que los controles remotos fueran
grandes y estorbosos, además de poco eficientes.

ALIMENTACIÓN
Como cualquier circuito electrónico, un microprocesador necesita
de una fuente de alimentación que le proporcione la energía eléctrica
necesaria para su correcto funcionamiento. Esta fuente entrega al
dispositivo el voltaje y la corriente adecuados para que pueda realizar sus
tareas. La fuente de alimentación puede ser ya sea un bloque que tome la
electricidad de la línea de corriente alterna (CA) hogareña, y la transforme
en el voltaje adecuado para el circuito, o una simple pila eléctrica (o
varias).
SEÑAL DE RELOJ
Los circuitos de proceso digital requieren de una señal que les
indique la velocidad en la que se ejecutarán sus cálculos internos, esta
señal también sirve como sincronía entre los diversos bloques periféricos
necesarios para cierta aplicación.
RESET
Cuando se enciende un aparato que posea en su interior un
microprocesador, existe un momento justo después del encendido en que
el voltaje de la fuente aún no se estabiliza por completo, y por lo tanto,
puede ocasionar que el dispositivo comience a generar resultados
extraños. Para evitar que el microprocesador comience a funcionar
cuando su voltaje de alimentación aún no se ha estabilizado, existe una
señal conocida como “reset” (RST), cuyo objetivo es mantener apagado al
micro durante esos milisegundos iniciales, y una vez que la fuente ya se
ha encendido por completo, libera al micro y le permite iniciar su labor de
proceso de información.
BUS DE DATOS
Para que el micro pueda comunicarse con el exterior; recibir las
instrucciones que necesita para trabajar, los datos que debe procesar y
las instrucciones del usuario, para expedir los resultados obtenidos, etc.,
existen una serie de líneas de comunicación conocidas como “bus de
datos”.
BUS DE DIRECCIONES
Cualquier microprocesador requiere de una memoria externa para
guardar en ella las instrucciones básicas del programa que debe ejecutar,
así como los datos iniciales con los que comenzará su proceso de cálculo;
para poder acceder al contenido de esa memoria, es necesario contar con
un bus de direcciones, donde precisamente el micro puede indicar a la
memoria: “necesito el dato escrito en la celdilla XX”, y de este modo, el
chip de memoria busca en su almacén interno y suministra al bus de
datos la información deseada.
MAPA DE MEMORIA
Durante la ejecución de cualquier programa, los saltos de una
dirección a otra son muy comunes, ya que se usan por ejemplo, para
llamar a sub-rutinas, para ejecutar diversas acciones según lo requieran
las condiciones de operación del circuito, etc. Esto implica que dentro del
micro debe existir un control de memoria muy preciso, capaz de ir leyendo
los datos e instrucciones de forma secuencial, pero también de llevar un
registro exacto de los saltos realizados, y de los puntos de retorno
asignados; y ese es precisamente el objetivo del control de memoria,
donde se almacena un verdadero “mapa” de ésta, definiendo cuáles
bloques se leerán en forma secuencial, dónde se establecen los saltos o
los puntos de retorno, etc.
INTERRUPCIONES
Otro punto importante a considerar es qué hacer si el dispositivo
entra en un ciclo interminable, pero el usuario no desea hacer algo tan
drástico como apagar el micro o darle un reset, sino que desea que
continúe haciendo su trabajo normal. Para esos casos, los
microprocesadores cuentan con una o más señales de interrupción (INT),
que como su nombre lo indica, cuando se aplican al dispositivo éste
detiene lo que esté haciendo en ese momento y se dirige a una dirección
de memoria preestablecida, donde deberán estar programadas las
instrucciones adecuadas para que el micro recobre su estado de control
normal. Casi siempre hay dos tipos de señal de interrupción: las
interrupciones “mascarables” y las “no-mascarables”. Las primeras
pueden ser ignoradas por el micro en un momento dado, si así está
determinado en su programación, mientras que las segundas no pueden
ser ignoradas por el micro, e implican la interrupción inmediata de
cualquier proceso que esté realizando, y el salto hacia la dirección de
memoria predeterminada.
OPERACIONES BÁSICAS ENTRE REGISTROS
Antes de comenzar con la explicación de la estructura y
funcionamiento de un microprocesador o microcontrolador, se indicarán
las operaciones principales que se pueden hacer con estos dispositivos, y
aclarar un concepto que en ocasiones confunde a quienes apenas
comienzan en este tema: la distinción entre números decimales y
números binarios, y las distintas operaciones que se pueden realizar con
estos últimos. Aunque probablemente quien ya llegó a esta unidad
domina el concepto de numeración binaria, no está de más dar un repaso
rápido sobre el tema. Como se sabe, las personas utilizan el sistema
decimal para realizar sus operaciones diarias, desde contar las frutas y
verduras, hasta los más complejos cálculos astronómicos o físicos. El
sistema decimal ha demostrado su efectividad a través del tiempo, y se ha
convertido en algo tan natural que parece difícil pensar que existan otras
formas de realizar operaciones matemáticas; sin embargo, utilizar el
sistema decimal es más fruto de la casualidad que de un razonamiento
lógico, y la razón principal por la que se estableció desde el inicio de la
humanidad, es debido a que tenemos diez dedos en ambas manos, así
que este aspecto se utilizó como base y se creó un sistema de
numeración fundamentado en potencias de diez.
Como su nombre lo indica, la numeración binaria representa
cualquier tipo de cantidad utilizando sólo dos símbolos: un “0” y un “1”.
Esto podría parecer extraño a primera vista, pero una vez que se
comprende la lógica detrás de la conversión, resulta fácil de entender. Por
ejemplo, al analizar los diez números naturales (del 0 al 9) que se utilizan
de manera cotidiana, y cómo se pueden representar por numeración
binaria; se han añadido también los números del 10 al 15 con su
correspondiente representación en lenguaje hexadecimal (indicado como
Ah, Bh, etc), ya que es el más utilizado al momento de programar
dispositivos de 8 bits.
REGISTROS CON ELEMENTOS ARITMÉTICOS BÁSICOS
Ahora que se recordaron los conceptos básicos de la numeración
binaria, se describirán las operaciones básicas que se pueden hacer con
este tipo de números, y así, más adelante, analizar lo que se puede hacer
cuando se desean realizar operaciones con dos números binarios. Como
última aclaración: se utilizarán palabras de 8 bits, pero se separarán en
dos grupos de cuatro, ya que así se pueden interpretar más fácilmente;
también se mostrará su equivalente hexadecimal, ya que es la notación
más común al programar microprocesadores de 8 bits.
Operaciones con un registro sencillo
Con un número binario se pueden realizar una gran cantidad de
operaciones, de las cuales, bastantes están incluidas en el juego de
instrucciones básicas de microprocesadores y microcontroladores.
Aritmética básica con registros
Así como en numeración decimal se pueden efectuar sumas,
restas y demás operaciones matemáticas, también se pueden realizar con
la numeración binaria, aunque sus reglas son un algo distintas. No se
profundizará en cómo se hace una suma o resta en binario, tan sólo se
mencionarán las operaciones más importantes y cómo se interpretan en
los registros. Se supondrá que los registros con los que se realizará la
operación se identifican como [A] y [B], y el resultado se colocará en un
registro especial de resultado [R].
Operaciones condicionales y de salto
Existen otras operaciones básicas que cualquier microprocesador
debe ser capaz de realizar, para ejecutar determinados segmentos de
código en el momento en que se cumplan ciertas condiciones; es
precisamente por eso que a ese tipo de instrucciones se les llama
“condicionales”, y resultan fundamentales al momento de realizar el
programa básico de cualquier circuito de proceso lógico de información.
Además de éstas, hay instrucciones en las que simplemente se le ordena
al microprocesador que haga un “salto” en su memoria, esto es, que deje
de leerla secuencialmente y en un momento dado se dirija a una posición
de memoria determinada, donde probablemente exista una serie de
instrucciones necesarias en ese momento, u otra serie de comandos que
deben ejecutarse cuando se llega a un cierto punto del programa. A
continuación, se indican cuáles son estas instrucciones condicionales y de
salto, y así, tener las herramientas principales que permitirán comenzar a
realizar los primeros programas de prueba. Aquí se debe introducir un
registro muy especial, llamado “contador de programa” o PC por sus
siglas en inglés; en este registro, se lleva precisamente qué localidad de
memoria se está leyendo en un momento dado; y en condiciones
normales, cada vez que se ejecuta alguna instrucción, el PC se
incrementa una unidad para leer la siguiente orden. Esta lectura
secuencial sólo se interrumpe cuando existe alguna instrucción de salto,
con lo cual el contenido del PC puede cambiar según la instrucción dada
o según lo indiquen los comandos básicos del microprocesador
empleado. También es importante mencionar la existencia de otro registro
muy especial: el stack pointer o almacén de direcciones, el cual se usa
especialmente cuando se llaman a segmentos de código que se deben
usar una y otra vez. A estos segmentos se les da el nombre de
“subrutinas”, y existen instrucciones especiales para llamarlas y para
regresar de ellas, y es ahí donde se aprovechan los registros stack. Si el
concepto de estos dos registros no queda muy claro en este momento,
más adelante, cuando se hagan los primeros programas de prueba y se
apliquen todos estos registros, su utilidad será evidente.
CONCEPTOS BÁSICOS DE INSTRUCCIÓN Y CÓDIGOS DE
OPERACIÓN
Hasta este momento, ya se indicó que para que un
microprocesador pueda comenzar a trabajar, es necesario proporcionarle
una serie de órdenes y datos, que detallen exactamente qué labor se
desea realizar, cómo utilizar sus puertos, cómo establecer contacto con
sus periféricos, etc. Sin esta serie de instrucciones, un microprocesador
no sirve absolutamente para nada, pero si estos comandos están
correctamente programados, el micro se convierte en una poderosa
herramienta de productividad, ya sea para trabajos generales (como los
microprocesadores en computadoras personales), o para aplicaciones
muy específicas (como los microcontroladores incorporados en los
equipos electrónicos hogareños). Además, esta serie de instrucciones
permite utilizar un mismo micro para distintas aplicaciones, tan sólo
cambiando la asignación de terminales, la forma de interpretar las señales
de sus sensores, conectando distintos actuadores, etc. Es precisamente
este programa base lo que proporciona versatilidad a los
microprocesadores, y permiten aprovecharlos en muchas y muy variadas
formas.
Ahora bien, este programa base debe tener cierta estructura, la
cual es determinada por el microprocesador. Si por ejemplo, se programa
un microcontrolador para un sistema de aire acondicionado, se supondría
que como entrada se colocará un termómetro, y como salida un par de
controles que enciendan ya sea el calefactor o el enfriador de aire;
además, este aparato deberá tener un teclado de control para que el
usuario determine la temperatura que desea, y un display donde muestre
dicho valor. Con esta información básica, se puede comenzar a pensar en
cómo puede ser un programa que controle el funcionamiento de este
aparato; sin embargo, aquí existe un problema fundamental.
Entonces, en resumen, los microprocesadores poseen un juego de
instrucciones básicas con las cuales deberá estar elaborado el programa
que le va diciendo a cada momento qué hacer; estas instrucciones tienen
una construcción muy particular, dependiendo del microprocesador en
cuestión, y pueden ser combinaciones de bits de diversa longitud,
dependiendo de cómo haya sido diseñado ese dispositivo.
MICROPROCESADOR HIPOTÉTICO
Antes de comenzar las prácticas con un microcontrolador real, a
continuación se indica cómo funciona un microprocesador hipotético, y
esto servirá como base para comprender mejor el funcionamiento de
dispositivos reales. También permitirá conocer algunos puntos
importantes en el funcionamiento de estos circuitos de proceso lógico,
que se aplican a cualquier marca y modelo de microprocesador o
microcontrolador.

OPERACIÓN DEL MICROPROCESADOR, FASES DE


BÚSQUEDA Y EJECUCIÓN
¿Qué sucede cuando se aplica un voltaje de alimentación por
primera vez a un microprocesador hipotético? En primer lugar, debido al
circuito de RST que debe tener conectado en la terminal respectiva,
durante algunos microsegundos el micro ya está recibiendo su voltaje de
alimentación, pero no puede comenzar a funcionar hasta que la terminal
RST sea activada; cuando finalmente sucede esto, el registro PC del
micro está en su posición 0000h, por lo que el dispositivo comienza a
buscar la primer orden de su programa en dicha posición. Si no hubiera
ningún salto directo, de ahí se pasa a la posición 0001h, 0002h, y así
sucesivamente, hasta que encuentre la primera orden de salto, y se dirija
hacia alguna localidad de memoria específica, esto se hace modificando
el contenido del registro PC.
En estas primeras órdenes que recibe el micro, debe estar la
configuración inicial del dispositivo, que le indica cómo programar los
periféricos que lo rodean; por ejemplo, tiene que indicar cuáles serán sus
puertos de entrada y salida de datos, configurar adecuadamente los
temporizadores asociados, indicar si se van a utilizar las interrupciones
externas, etc., todo esto para que se fijen las condiciones iniciales tanto
del micro como de sus circuitos asociados, y que todo quede listo para
comenzar a trabajar de inmediato. Una vez que todos los periféricos están
debidamente inicializados, el programa puede comenzar a ejecutarse, y el
micro puede comenzar con su labor de control numérico.
CONCEPTO Y OPERACIÓN DEL MICROPROCESADOR
Cuando el microprocesador ha comenzado a funcionar, es el
momento de que inicie su labor de control; la cual puede consistir en el
simple encendido/apagado de dispositivos externos siguiendo una cierta
secuencia fija (por ejemplo, un semáforo, que siempre está funcionando
con la misma secuencia verde-amarillo-rojo y vuelve a empezar), o si el
caso lo amerita, el micro puede recibir realimentación de algún bloque
externo, que sirva para hacer funcionar otros elementos (aquí el ejemplo
sería un horno de microondas, que requiere que el usuario introduzca el
tiempo de operación, comprobar que los switches de la puerta están
cerrados, revisar que no se han activado las protecciones térmicas, y si
todo eso se cumple, en ese momento se activa el generador de
microondas, el motor del plato giratorio y el ventilador de enfriamiento,
para obtener el resultado final del calentamiento).
CONCEPTO DE MODO DE DIRECCIONAMIENTO
Antes de entrar al tema de la programación de un microprocesador,
se describirá un concepto indispensable para su correcta utilización: los
modos de direccionamiento de las instrucciones. Se denomina “modo de
direccionamiento” a la forma como son “llamados” los datos que se
utilizarán en una operación, dependiendo de si se invoca directamente, de
modo indirecto, de manera implícita, etc. Existe una amplia variedad de
modos de direccionamiento de información, aunque los más utilizados por
los fabricantes de microprocesadores son sólo unos cuantos; a
continuación, se indican los más comunes:
- Direccionamiento inmediato: en el mismo comando de la
operación va el dato con el que se trabajará. Ejemplo: carga 35h en W
- Direccionamiento directo: en el comando se indica la dirección de
memoria exacta donde se encuentra el dato con que se desea trabajar.
Ejemplo: carga el contenido de 0xA1 en W.
- Direccionamiento indirecto: el comando indica una dirección de
memoria, en donde se almacena una segunda dirección, que es donde
está el dato necesario. Ejemplo: carga el contenido de [dirección de
memoria guardada en 0xA1] en W.
- Direccionamiento implícito: cuando la orden sólo indica qué se va
a hacer con los operandos, y éstos se extraen automáticamente de una
pila de datos. Ejemplo: teniendo una serie de operandos en la pila de
datos, simplemente se da la orden “Add”, con lo que se toman los dos
datos más cercanos de la pila y se suman entre sí.
- Direccionamiento a registros: cuando la orden invoca a un dato
que ya se tiene en alguno de los registros de trabajo del micro. Ejemplo:
incrementa el valor de W.
- Direccionamiento indirecto por registro: la orden invoca una
dirección de memoria que está almacenada en uno de los registros del
micro. Ejemplo: carga el dato que está en [dirección de memoria
guardada en registro X] en W.
Y así sucesivamente; existen decenas de modos distintos de
direccionamiento, pero muchos de ellos sólo se utilizan en los
microprocesadores más complejos, y en pocas ocasiones. Como estos
micros suelen tener lenguajes de programación de alto nivel (C++, Java,
etc.), el usuario en realidad no se percata de estos modos, sino que
escribe su programa en el lenguaje en cuestión, y el compilador se
encarga de pasarlo a lenguaje de máquina, y es aquí donde aparecen
dichos modos de direccionamiento. No obstante, se han hecho pruebas
muy estrictas y se ha descubierto que incluso en estos casos, más del
90% de los direccionamientos son de tipo sencillo (algunos de los
mencionados antes).

También podría gustarte