Anda di halaman 1dari 4

INSTITUTI POLITECNICO NACIONAL

CECyT No. 3
“ESTANISLAO RAMIREZ RUIZ”
“MICROPROCESADORES”

En la programación de bajo nivel es preferible un programa independiente de posición a uno


dependiente de posición (aun cuando el programa independiente de posición es de un 5% a
10% mas lento que el dependiente de posición). En un ?P MC6809 se cuenta con modos de
direccionamiento relativo, relativo extendido e indexado relativo que facilita la elaboración de
programas independientes de posición. En especial el indexado relativo del contador de
programa (PCR) puede ser usado para apuntar a cualquier localidad relativa al programa no
importando su posición en memoria. El PCR (indexado relativo del contador de programa) es
una forma de direccionamiento indexado que permite el acceso a tablas dentro del espacio del
programa en forma independiente de posición a través del uso de las instrucciones "carga
dirección efectiva".

Un programa que es independiente de posición tiene necesidad de utilizar localidades


absolutas para dispositivos de E/S. En este caso se pueden grabar estas localidades en el
stack como almacenamiento global en una rutina de inicialización antes de la ejecución del
paquete independiente de posición. De esta forma en el programa se pueden llamar a los
dispositivos de E/S como apuntadores como almacenamiento global, permitiendo que el
hardware pueda ser fácilmente cambiado si se desea, ya que solo se necesita reescribir la
pequeña rutina de inicialización para cada diferente configuración.

Los datos temporales, globales y permanentes también deben estar disponibles en forma
independiente de posición. Las instrucciones LEA permiten el acceso a datos, tablas o valores
de texto en forma independiente de posición.

PROGRAMACIÓN REENTRANTE

En sistemas que trabajan con interrupciones es posible que alguna interrupción utilice la
subrutina que se estaba trabajando en el momento de la interrupción. En ese caso si el
almacenamiento local y global se utiliza de manera arbitraria entonces en la interrupción se
alterarían estas memorias y al regresar de la interrupción los resultados de la primer rutina
serian erróneos. Por esto es necesario que el almacenamiento local se haga en distinto lugar
cada vez que se entre en el modulo. Esto se logra usando el stack para transferir parámetros
globales, resultados y para hacer el almacenamiento local.

PROGRAMACIÓN RECURSIVA

La misma técnica que permite la programación reentrante, permite también la programación


recursiva. Una subrutina recursiva se define como aquella que se llama así misma. Estas
subrutinas son diseñadas para simplificar la solución de ciertos tipos de problemas que tienen
una escritura de datos cuyos elementos pueden ser a su vez otra escritura o problema por
resolver. En estos casos los parámetros pueden ser transferidos a través del stack como en el
caso de los programas reentrantes. Un ejemplo muy simple de este tipo de programa se da en
la solución de un modulo de transmisión serie por medio del adaptador interface de
comunicaciones asinconas.

TÉCNICAS DE PROGRAMACIÓN
DIVISIÓN EFICIENTE DE 8 BITS

La división puede hacerse de dos maneras con el 6809: restando sucesivamente el divisor del
dividendo con lo que el número de veces que sea posible restar será el cociente; o por medio
del algoritmo de resta y cambio que es el método de la casita que se aprende en primaria. Este
último es mas eficiente porque en promedio es mas rápido que el de restas sucesivas.

En el algoritmo que se da a continuación los datos deben alimentarse en "A" y "B". A la


entrada del programa estos datos se depositan en memoria local (por el PUSH) para ser
usados como numerador y denominador respectivamente, quedando "A" y "B" libres para
registros de trabajo. "B" entonces se usa como contador del número de veces que vamos a

POLLO VOCA 3 Página 1


INSTITUTI POLITECNICO NACIONAL
CECyT No. 3
“ESTANISLAO RAMIREZ RUIZ”
separar una cifra (binaria) y verificar si toca o no toca. "A" se usa para recibir cifra por cifra del
dividendo y realizar la comparación contra el divisor para ver si toca. Al final contendrá el
residuo. El esquema del algoritmo quedaría así:

* ***SUBRUTINA división

* * DIVIDE A/B POR EL MÉTODO DE RESTA Y CAMBIO

* * TARDA DE 186 A 274 CICLOS DEPENDIENDO DEL NUMERO DE


* * VECES QUE "TOQUE" (NUMERO DE UNOS EN EL COCIENTE).
* * CON CRISTAL DE 5 Mhz LA VELOCIDAD SERIA DE 149 A 219?S.

* * EL COCIENTE RESULTA EN "A" Y EL RESIDUO EN "B"

* * ES MODULAR, REENTRANTE E INDEPENDIENTE DE POSICIÓN

0000 34 06 DIV PSHS A,B ; DATOS A MEMORIAS LOCALES (S)=A (S+1)=B


0002 CC 0008 LDD #8 ; INICIALIZAR REGISTRO DE TRABAJO
0005 68 E4 DIVIDE LSL ,S ; SEPARA 1 DÍGITO PARA DIVIDIR Y PREPARAR
COCIENTE
0007 49 ROLA ; REGISTRO DE TRABAJO (DENTRO DE LA CASILLA)
0008 A1 61 CMPA 1,S ; CONTRA EL DIVISOR. TOCA?
000A 25 04 BLO ; NO TOCA
000C 6C E4 INC ,S ; COCIENTE LOCAL. Lsb =1(SI TOCA)
000E A0 61 SUBA 1,S ; RESTA DEL PROCEDIMIENTO TOCA
0010 5A NOTOCA DECE ; CONTADOR DE BITS QUE SE BAJAN O SEPARAN
0011 26 F2 BNE ; DIVIDE 32 (TOCA), 21 (NO TOCA)
0013 A7 61 STA 1,S ; RESIDUO A LA POSICIÓN DE B
0015 35 86 PULS A,B, PC ; RECOBRAR LOCALES Y RETORNO DE SBR.
END

APLICACIÓN
DE
MICROPROCESADORES

EL MICROPROCESADOR

La cuarta generación de computadoras basa su funcionamiento en el microprocesador,


dispositivo que agrupa a miles de elementos lógicos en un circuito integrado y que es capaz de
realizar operaciones lógicas, aritméticas, de control y de toma de decisiones.

En realidad el microprocesador por si solo no puede resolver problema alguno ya que necesita
de varios elementos auxiliares para poder operar. Así pues un microcomputador está formado
por el microprocesador y sus elementos auxiliares tal como se muestran en la figura:

1.- UNIDAD PROCESADORA CENTRAL (CPU).

Constituida por el microprocesador definido anteriormente. Es el elemento operativo del


sistema y esta formado por una serie de elementos quienes en conjunto realizan las funciones
asignadas según especificamente por el microprocesador. En ella el microprocesador
almacena datos de interés temporal tanto de los programas que efectúa como para su propio
funcionamiento.

POLLO VOCA 3 Página 2


INSTITUTI POLITECNICO NACIONAL
CECyT No. 3
“ESTANISLAO RAMIREZ RUIZ”
4.- UNIDADES DE ENTRADA Y SALIDA. (E/S).
Son el medio a través de que el microcomputador recibe información del exterior. Las
unidades E/S incluyen una interface y un periférico. La interface se encarga de acoplar la
información ya sea en niveles, códigos o velocidad, mientras que el periférico es el elemento
final que aprovecha dicha información.

Como puede apreciarse los bloques que forman al microcomputador están ligados por una
línea de comunicación denominada "BUS".

En el ámbito de las computadoras un "BUS" se define como un grupo de conductores por los
que se transfiere información de un lugar a otro. En muchos casos la información proviene de
cualquiera de las varias fuentes y puede transferirse a uno de varios destinos. Aun mas en
algunos buses la información puede transferirse en cualquiera de dos sentidos. Estos son
llamados buses bidireccionales. Desde luego para un bus dado solo puede transferirse
información en un solo sentido en un instante dado.

La siguiente figura muestra el arreglo de un bus de datos en una microcomputadora típica.


Generalmente en este tipo de sistema de transferencia de información involucra
necesariamente al microprocesador. Así puede intercambiarse información entre el ?P y la
memoria RAM, transferirse de la memoria ROM o el dispositivo de entrada al ?P, o también del
?P al dispositivo de salida.

En un arreglo como este aparecen dos detalles importantes. Primero, se debe asegurar que en
cualquier instante dado pretenda solo una transmisión de datos. Esto se logra asignando a
cada destino o fuente una dirección diferente. Por ejemplo: cada uno de los bloques RAM,
ROM, puerto de entrada y de salida poseen uno o más habilitadores. Un nivel lógico apropiado
en estos contactos activa el circuito.

De aquí que asignando a cada circuito diferente dirección, aseguramos que solo un circuito se
habilitará a la vez. A esto se le conoce como direccionar.

La siguiente figura muestra como se logra esta capacidad. Como puede apreciarse se agrega
un decodificador de direcciones para cada circuito. Las entradas de este decodificador
provienen del ?P a través del bus de direcciones. Las salidas van a las líneas habilitadoras de
los circuitos que requieran comunicación con el ?P a través de la línea de datos. Dado que en
un instante determinado solo puede aparecer una dirección se habilita a un solo circuito.

POLLO VOCA 3 Página 3


INSTITUTI POLITECNICO NACIONAL
CECyT No. 3
“ESTANISLAO RAMIREZ RUIZ”

A las memorias se les asigna muchas direcciones dado que cada byte debe tener su propia
dirección. Por ejemplo si se usa una RAM de 2k posiblemente se le asignen las direcciones de
la 0000 a la 07FF. Cuando cualquiera de estas direcciones aparecen en el bus de direcciones
la RAM se habilita a través de la línea proveniente del decodificador. Nótese además que una
parte de las líneas de direcciones se conecta directamente a la RAM, mismas que sirven para
seleccionar los bytes individualmente dentro de la RAM.

En la misma forma se asigna un rango de direcciones a la ROM. Si se conecta una memoria


de 4k se podrían asignar direcciones de la F000 a la FFFF. El ROM debe ser habilitado cuando
cualquiera de estas direcciones aparezcan en el bus de direcciones .

Los puertos de entrada y salida tienen una dirección única (para cada uno). Así el ?P se
comunica con los medios de entrada y salida poniendo la dirección apropiada en el bus.

El segundo punto es mas fundamental, y aparece debido a la naturaleza de los estados de los
circuitos digitales; la salida de una compuerta estándar tiene siempre un estado lógico, esto es,
un cero o un uno. El problema es: ¿que estados tendrían las salidas de los circuitos
conectados al bus de datos cuando no están habilitados? Independientemente del estado que
asuman interferirían con el estado de salida del circuito seleccionado. Por ejemplo si la salida
del circuito deshabilitado tiene un estado alto interferirá con el estado bajo del circuito
habilitado. Es decir, un circuito trata de poner un nivel alto mientras que otro trata de forzarlo a
cero. Desde el punto de vista eléctrico esto es un corto que de permanecer así dañaría las
compuertas involucradas.

Este problema se resuelve dotando de lógica de tercer estado a todos los elementos que se
conectan al bus. Así cuando un dispositivo este deshabilitado el estado que presenta es el
llamado "tercer estado" o de alta impedancia que prácticamente significa "desconectado".

POLLO VOCA 3 Página 4

Anda mungkin juga menyukai