Escolar Documentos
Profissional Documentos
Cultura Documentos
GUA TERICA
Laboratorio TIME
Pgina blanca
Pgina blanca
Requisiti:
Contenidos:
evolucin de los microprocesadores estructura interna de un microprocesador de un sistema de microprocesador el modelo de programacin de los microprocesadores Intel la direccin de memoria
Pgina blanca
Fig. 2.1.1 No corresponde a ningn microprocesador presente en el mercado, pero resulta suficientemente genrico para poder comprender los principios relativos a la estructura interna de los microprocesadores. Los dispositivos ms importantes que pueden ser localizados son los siguientes: La Unidad Aritmtico/Lgica (ALU) Los Registros internos La lgica de Control Son descritos a continuacin. La Unidad Aritmtico/Lgica (ALU) Contiene la lgica de elaboracin y clculo del microprocesador. Se abastece de 2 puertas de entrada y de una puerta de salida. Ambas puertas de entrada estn dotadas de un registro temporaneo que mantiene memorizado el dato en la entrada a disposicin del ALU. Las dos puertas de entrada del ALU permiten adquirir desde el interior del microprocesador o por un especial registro, llamado acumulador. La puerta de salida permite normalmente enviar los datos al acumulador. El tipo y la cantidad de funciones que la ALU puede desarrollar vara de un microprocesador a otro, pero algunas funciones son soportadas por todos los microprocesadores, como: suma y resta incremento y disminucin desplazamiento derecho e izquierdo de los bit funciones lgicas AND, OR, XOR
Los Registros Los registros son las memorias internas capaces de memorizar una palabra de datos. Su nmero y las funciones pueden variar de un microprocesador a otro, pero los siguientes registros son normalmente siempre presentes: Acumulador Es el registro principal del microprocesador para la manipulacin de los datos. Normalmente cualquier operacin aritmtico/lgica prev la presencia de un operando en el acumulador. El acumulador trabaja con la misma longitud de palabra de datos usada por el microprocesador, por lo que un microprocesador de 32 bit tendr un acumulador de 32 bit. Registro de Contiene la instruccin que el microprocesador est efectuando. La instrucciones importancia de este registro reside en el hecho de que su salida pilota el dispositivo de descodificacin de las instrucciones y la lgica de control del microprocesador. Contador de Este registro sirve para individuar la instruccin que se est efectuando, y la programa sucesiva instruccin que deber ser efectuada. Mientras el microprocesador sigue una instruccin el contador de programa punta a la sucesiva instruccin para efectuar. Registro de Este registro sirve para individuar la locacin de memoria donde residen los direcciones de datos que son necesarios a la CPU. Su longitud debe ser tal para poder dirigir memoria una clula cualquiera de memoria. Registro de estado Este registro es usado para memorizar el resultado de las operaciones que el microprocesador efecta. Oportunas instrucciones permiten desps tomar las decisiones en base al estado de los bit de este registro. Registros de uso Estos registros expanden las posibilidades del registro acumulador para la general memorizacin de datos en el interior del microprocesador y por su elaboracin. El nmero y las funciones de estos registros dependen del detalle microprocesador.
La lgica de Control La lgica de control permite a todas las unidades internas del microprocesador de elaborar juntos y en la correcta secuencia temporal. Esta lgica recoge las instrucciones del registro de las instrucciones, verifica que se debe hacer, y proporciona a los otros dispositivos los mandos necesarios para la ejecucin de la instruccin.
Fig. 2.1.1
Todos los dispositivos de un sistema de microprocesador dialogan entre si a travs de un BUS de conexin. Este BUS est dividido en: BUS de los DATOS. El microprocesador utiliza este bus de 8, 16, 32, 64 lneas para intercambiar datos con los varios dispositivos (uno cada vez). BUS de las DIRECCIONES. Permite dirigir los varios dispositivos que deben intercambiar datos, uno cada vez, con el microprocesador. El nmero de las lneas depende de la cantidad de memoria de direccin por el microprocesador. Se necesita en general de un dispositivo externo, denominado descodificador de las direcciones, para asignar las diferentes direcciones a los diferentes dispositivos presentes.
Fig. 2.1.1
Pgina blanca
Fig. 2.1.1 Los registros de uso general pueden tambin ser usados como registros de 8 y 16 bit. Los registros de 8 bit son: AL, AH, BL, BH, CL, CH, DL, DH. Los registros de 16 bit son: AX, BX, CX, DX, BP, SI, DI, SP. Fig. 2.1.1 Ahora sigue una breve descripcin de los diferentes registros. Registros de uso general EAX Puede ser usado como registro de 32 bit (EAX), como registro de 16 bit (AX), o Acumulador como dos registros de 8 bit (AH y AL). Si es usado de 16 o 8 bit solamente aquella porcin del registro es modificada sin alterar los restantes bit. El acumulador es usado en las instrucciones como la multiplicacin, la dvisin, .. donde tiene un significado especial, pero normalmente puede ser considerado como un registro de uso general. En el 386 y superiores el registro EAX puede tambin dirigir la memoria de datos.
Como EAX tambin EBX puede ser usado como EBX, BX, BH y BL. El registro EBX es utilizado paa la direccin de la memoria en todas las versionas de los microprocesadores Intel. Es un registro de uso general que es utilizado para la cuenta en diferentes instrucciones. En el micro 386 y superiories puede tambi dirigir la memoria de datos. Las instrucciones de rotacin y shift usan CL como contador para individuar el nmero de veces que la operacin debe ser repetida. Las instrucciones de lnea repetida usan CX. Registro de uso general que sirve tambin para memorizar parte del resultado en una multiplicacin o parte dividiendo antes de una divisin. En el 386 y superiores el registro EDX puede tambin dirigir la memoria de datos.
ECX count
EDX data
EBP Es utilizado como apuntador de locaciones de memoria, en todas las versiones de base pointer los microprocesadores, en las instrucciones de trasferencia de datos de la memoria. Puede ser usado sea como registro EBP como BP. EDI destination index Puede ser utilizado como registro de uso general de 32 bit (EDI) o como registro de 16 bit (DI). A menudo es utilizado como registro de direccin de destino de datos en las instrucciones con las cadenas.
ESI Puede ser utilizado como registro de uso general de 32 bit (ESI) o como registro de source index 16 bit (SI). A menudo es utilizado como registro de direccin de fuente de datos en las instrucciones con las cadenas. ESP Dirige el rea de memoria utilizada para el stack. stack pointer El stack es aquella zona de memoria de tipo last-in first-out donde son salvadas las direcciones de retorno de las subroutines y el contenido de los registros (instrucciones de POP y PUSH). Registros de segmento Son utilizados para generar las direcciones de memoria donde residen las instrucciones y los datos, en combinacin con otros registros. Para su funcionamiento especfico se ven las prximas dos pginas relativas a las problemticas de direccin. CS Individua una seccin de memoria donde est presente el cdigo relativo a los programas code y procedimientos que el microprocesador debe efectuar. El registro Code Segment individua la direccin de inicio de esta seccin de memoria. En las operaciones de modo-real la seccin de memoria puede ser larga 64K mximos. En las operaciones de modo-protegido puede llegar a 4GB. DA data Individua una seccin de memoria donde son presentes los datos utilizados por el programa. El registro Data Segment individua la direccin de inicio de esta seccin de memoria. Los datos en el interior de la seccin son despus individuados por una direccin (offset) que puede ser un nmero fijo o contenido con otro registro. En las operaciones de modo-real la seccin de memoria puede ser larga 64K mximos. En las operaciones de modo-protegido puede llegar a 4GB.
ES extra SS stack
Individua un segmento de datos adicional, a menido til en las operaciones como en las cadenas. Individua el area de memoria utilizada para el stack del microprocesador. Las locaciones en el interior de esta area son despus individuadas por el contenido del Stack Pointer (SP). Registros de segmento adicionales para poder acceder contemporaneamente a dos segmentos adicionales.
FS e GS
Otros registros EIP Individua la direccin de la prsima instruccin para efectuar, en el interior del Code instruction Segment.. pointer Este registro es usado como EIP en el caso de un 386 (o superior) funcionante de modo protegido, mientras es usado como IP (16 bit) en el caso de modo real. Es usado por el microprocesador para encontrar la sucesiva instruccin para efectuar. Es automticamente incrementato despus de cada instruccin, o es modificado completamente en el caso de instrucciones de salto y de llamada a funciones. EFLAGS Este registro conserva el estado del microprocesador, otras para controlar sus operaciones. La figura siguiente muestra su estructura:
Los primeros 16 bit (FLAG register) son vlidos para todos los microprocesadores, mientras los sucesivos son especficos para el 386 en adelante. La descripcin de los diferentes bits est indicada a continuacin. C (carry) Memoriza la relacin (carry) en las operaciones de suma o el prstamo (borrow) en aquellas de resta. Es tambin utilizado para indicar condiciones de error en algunos procedimientos.
P (parity)
La igualdad individua el nmero de 1 presentes en un nmero. Vale 0 (igual impares) si el negro de 1 es impar, vale 1 (igual pares) si el nmero de 1 es igual. A (auxiliary carry) Memoriza la relacin (carry) en las operaciones de suma o el prstamo (borrow) en aquellas de resta, relativa a las posiciones 3 y 4 del resultado. Es usado en las operaciones con nmeros BCD. Z (cero) Indica si el resultado de una operacin es cero. Vale 1 si el resultado es 0, vale 0 en los otros casos. S (sign) Indica el signo del resultado de una operacin matemtica o lgica. Vale 1 si el signo es negativo, mientras vale 0 si el signo es positivo. T (trap) Es usado en las operaciones de debug para la verificacin del funcionamiento de los programas. I (interrupt) Controla las operaiones del pin de entrada INTR. Si I=1 el pin est habilitado para generar interrupciones, si est a 0 las interrupciones son bloqueadas. D (direction) Selecciona la modalidad de incremento o decremento para los registros DI y SI durante las instrucciones de cadena. Si D=1 los registros son automticamente decrementados, mientras si D=0 son automticamente incrementados. O (overflow) Indica que una operacin h generado un overflow (es decir un nmero que excede las capacidades de la mquina). IOPL (in/out Es usado en el modo protegido para seleccionar el nivel de privilege level) privilegio de las operaciones de I/O. NT (nested task) Es utilizado en el modo protegido para indicar que el task actual se encuentra anidado en el interior de otro task. RF (resume) Es usado en las operaciones de debug para la verificacin del funcionamiento de los programas. VM (virtual mode) Es usado en el modo protegido para seleccionar el modo de funcionamiento virtual (este modo proporciona divisiones de memoria DOS mltiple). AC Usado solamente en el 80486SX. (alignment check) VIF Usado en el Pentium. VIP Usado en el Pentium. ID Usado en el Pentium.
Fig. 1.5.1
La figura 1.5.2 muestra tutta la memoria (1MB) que se puede dirigir con modalidad real. Se ve como por ejemplo una direccin cualquiera fsica, por ejemplo la siguiente direccin, que suponemos que contiene un cdigo de programa: 1F000 se obtiene como combinacin de una direccin de segmento: CS = 1000 y de una direccin de offset: IP = F000 Muy a menudo se usa la siguiente expresin para indicar las direcciones de memoria fsicas: direccin de segmento:direccin de offset Ejemplo: CS:IP 1000:F000
El registro Data Segment DS contiene el nmero 0008 que selecciona el primer descriptor en la tabla de los descriptores (cada descriptor es largo 8 bytes y el descriptor N.0 no puede ser utilizado). El descriptor N.1 definine una direccin base del segmento igual a 00100000H, con una dimensin a 000FFH. El segmento de memoria fsica dirgigida por DS vara entonces de 100000H hasta 1000FFH.
Pgina blanca
Un ejemplo de instruccin MOV est indicado en la fig. 1.7.1 donde la instruccin no hace otra cosa que copiar el contenido del registro BX en el registro AX (el contenido de BX sigue inalterado). BX es el registro fuente y AX el registro de destino.
La instruccin MOV es capaz de mover los datos en variados modos. Estos modos corresponden a las posibles variaciones de la instruccin segn el tipo de direccin utilizado y son indicados en la tabla. Tipo Register Immediate Direct Instruccin MOV AX,BX MOV CH,3AH MOV [1234H],AX Fuente Register BX Destino Register AX Register Data 3AH CH Memory Register DS*10H + DISP Address AX 10000H + 1234H 11234H Memory Register DS*10H + BX Address CL 10000H + 0300H 10300H Memory Register DS*10H + BX + SI Address SP 10000H + 0300H + 0200H 10500H Memory DS*10H + BX + 4 Register Address 10000H + 0300H + 4 CL 10304H DS*10H + ARRAY + BX Memory Register + SI Address DX 10000H + 1000H + 0300H 11500H + 0200H DS*10H + EBX + 2 * ESI Memory Register 10000H + 00000300H + Address AX 00000400H 10700 Generacin de direccin
Register Indirect
MOV [BX],CL
Base-plus-index
MOV [BX+SI],BP
Register relative
MOV CL,[BX+4]
Scaled index
La ilustracin detallada de los diferentes modos de direccin est indicada a continuacin. Register Addressing Transfiere la copia de un byte (8 bit), de una palabra (16 bit) o de una doble palabra (32 bit) del registro de ubicacin de memoria fuente al registro o ubicacin de memoria de destino. Ejemplo: MOV CX,DX
Transfiere un byte (8 bit), una palabra (16 bit) o una doble palabra (32 bit) que se encuentren inmediatamente despus el cdgo de la instruccin en un registro o en una ubicacin de memoria. Ejemplo: MOV EAX,01234567H Direct Transfiere la copia de un byte (8 bit), de una palabra (16 bit) o de una doble Addressing palabra (32 bit) entre una ubicacin de memoria y un registro. Ejemplo: MOV AX,MEMPOS Register-Indirect Transfiere un byte (8 bit), una palabra (16 bit) o una doble palabra (32 bit) entre Addressing un registro y una ubicacin de memoria dirigida por un registro. Ejemplo: MOV AX,[BX] Base-Plus-Index Transfiere un byte (8 bit), una palabra (16 bit) o una doble palabra (32 bit) entre Addressing un registro y una ubicacin de memoria dirigida por un registro ms otros registro. El primer registro es denominado base y el segundo ndice. Ejemplo: MOV AX,[BX+DI] Register-Relative Transfiere un byte (8 bit), una palabra (16 bit) o una doble palabra (32 bit) entre Addressing un registro y una ubicacin de memoria dirigida por un registro ms un desplazamiento fijo. El registro se denomina base. Ejemplo: MOV AX,[BX+10H] Transfiere un byte (8 bit), una palabra (16 bit) o una doble palabra (32 bit) entre Base RelativePlus-Index un registro y una ubicacin de memoria dirigida por un registro ms otro registro ms un desplazamiento fijo. El primer registro es denominado base y el Addressing segundo ndice. Ejemplo: MOV AX,[BX+DI+10H] Scaled-Index Transfiere un byte (8 bit), una palabra (16 bit) o una doble palabra (32 bit) entre Addressing un registro y una ubicacin de memoria dirigida por un registro ms otro registro modificado por un factor de escala fijo 2X, 4X o 8X. Esta instruccin est disponible solamente a partir del 386. Ejemplo: MOV EDX,[EAX+4*EBX]
Immediate Addressing
Requisiti:
Contenidos:
Pgina blanca
Fig. 2.1.1
Las caractersticas principales de este microprocesador pueden as ser brevemente resumidas: Ncleo interno igual al microprocesador 386 Arquitectura interna de 32 bit. Tipos de datos de 8, 16 y 32 bit. 8 registros de 32 bit de uso general. Disponible con diferentes alimentaciones. EXTB: de 2.7V a 3.6V. EXTC: de 4,5V a 5,5V. Frecuencias hasta 33MHz Bus dirigidos externo de 26 bit para una direccin de 65MB de memoria Bus de datos externo de 16 bit. Desarrollado en tecnologa CHMOS de alta velocidad. Perifricas interne integradas: Unidad de gestin de la alimentacin y del clock Unidad de seleccin (Chip select) Unidad de control de las interrupciones Unidad Timer/Counter Unidad timer de Watchdog Unidad de serie asncrona de I/O Unidad de serie sncrona de I/O Unidad paralela de I/O Unidad de gestin DMA Unidad de control de refrsh Unidad de test compatible JTAG
El nmero de pin es muy elevado y diferentes pin asumen una doble funcin que puede ser elegida a nivel de configuracin software del dispositivo. La figura de al lado muestra el mismo microprocesador con los diferentes pins reagrupados segn su funcin lgica. Se pueden entonces individuar: A El bus de los datos con sus 16 lneas El bus de las direcciones con sus 25 B lneas C: Las seaIes de clock y de reset Las seales relativas a la Port 1 de I/O D con las alternativas Las seales relativas a la Port 2 de I/O E con las alternativas Las seales relativas a la Port 3 de I/O F con las alternativas G Las seales de control H Otras seales
En el mdulo E24 es utilizada la versin EXTC del microprocesador que preve una alimentacin entre 4.5V y 5.5V. Todas las lneas externas son entonces TTL compatibles pudiendo as utilizar un circuito cualquiera integrado TTL en esu externo. La potencia absorbida por el microprocesador vara segn la frecuencia de trabajo y de la tensin de alimentacin del chip. Por ejemplo, con una frecuencia operativa de 25 MHz y con una alimentacin de 5.0V el microprocesador absorbe aproximadamente 250 mA.
Fig. 2.3.1 Sigue una breve descripcin de las perifricas internas integradas. Clock and Power Management Unit El clock CLK2 recibido desde el exterioe es dividido por dos para obtener el clock interno del procesador, con las dos fases PH1 y PH2, que es utilizado por el ncleo principal y por las perifricas integradas. Estn disponibles 2 Power Management Mode para el funcionamiento con ahorro de energa.
Uno es el Idle Mode donde el clock de la CPU es bloqueado mientras sigue activo el de las perifricas, y el otro el Powerdown Mode donde el clock es bloqueado completamente por todos los dispositivos internos. Chip Select Unit Esta periferica interna decodifica el bus de las direcciones para abastecer los chip select en los dispositivos externos. Hay disponibles N.8 diferentes chip select: N.1 UCS (Upper chip-select channel) y N.7 chip-select de uso general (CSn). Interrupt Control Unit Esta perifrica interna contiene N.2 chip del tipo 8259A conectados en cascada. Soporta un mximo de 8 entradas (INT0-INT7) para las interrupciones externas y un mximo de 8 interrupciones internas. Timer/Counter Unit Esta perifrica tiene las mismas funcionalidades de base del timer/counter 8254. Estn presentes 3 contadores independientes de 16 bit, cada uno capaz de gestionar entradas de clock con frecuencias hasta de 8 MHz. Watchdog Timer Unit Se trata de un timer con un contador hacia atrs de 32 bit que es disminuido en cada clock. Al contador est asociada la salida WDTOUT que es pilotada a nivel alto por 16 ciclos de clock cuando el contador alcanza el cero. La salida WDTOUT puede ser usada para el reset del microprocesador, para generar una interrupcin o para indicar que se ha generado una condicin de prdida de sustentacin (hang) en el chip. Asynchronous Serial Unit Esta perifrica contiene un UART. Es equivalente al UART 16450. Es posible gestionar dos canales de comunicacin asncrona full-duplex equivalentes a los COM1 y COM2 del PC. Synchronous Serial Unit Esta perifrica gestiona un canal de comunicacin sncrono, con un trasmisor, un receptor y un generador de baud-rate dedicado. Es posible gestionar velocidad de trasmisin hasta 8.25 MHz con frecuencia de clock del procesador de 33 MHz. Parallel Input/Output Unit Esta perifrica contiene N.3 puertas de I/O de 8 bit. Las puertas son de tipo bidireccional programable. Las entradas son de tipo TTL y las salidas de tipo CMOS. DMA and Bus Arbiter Unit Esta perifrica contiene N.2 canales de acceso directo a la memoria (DMA). Cada canal puede trasferir data entre una combinacin de memoria e I/O con otra combinacin cualquiera (8 o 16 bit) de fuentes de datos. Refresh Control Unit Esta perifrica simplifica el interfaz del microprocesador con las memorias RAM de tipo dinmico que necesitan una actualizacin.
JTAG Test-Logic Unit Esta perifrica permite el acceso a los pin del dispositivo a otras fuentes de informacin interna para operaciones de test. Es completamente compatible con el estndar IEEE 1149.1 disponiendo de 5 lneas de acceso dedicadas: TRST, TCK, TMS, TDI y TDO.
Pgina blanca
2.4 Temporizaciones
Las temporizaciones de un microprocesador son de fundamental importancia para el interfaz del micro con los dispositivos externos: memorias, puertas de I/O, etc. . El microprocesador 80386EX usa un ciclo base (Cycle1, 2, ..) de 2 perodos de clock interno (CLKOUT) o estados-T (T1 y T2).
El fin de T1 es el de generar en la salida una direccin, en el bus de las direcciones, y hacer activa a nivel bajo la lnea ADS#. Tambin si las seales de read (RD#) y write (WR#) inician en T1, no causan la trasferencia de datos hasta que no llegue T2. El fin de T2 es el de trasferir los datos entre el microprocesador y la memoria o los dispositivos de I/O externos. En la figura los primeros 2 ciclos de clock CLKOUT (indicados con Cycle 1) muestran una operacin de escritura, mientras los segundos 2 muestran una operacin de lectura. La diferencia entre los ciclos de lectura y escritura reside en las seales de control y en el momento en que aparecen los datos en el bus de datos.
Durante un ciclo de escritura los datos son presentados en el bus a mitad de T1 y por toda la duracin de T2. Durante un ciclo de lectura los datos son abastecidos en el bus por la memoria o por el dispositivo de I/O externo, y deben ser vlidos al final de T2 para ser ledos correctamente por el microprocesador.
Fig. 2.5.1
Interfaccia a 16 bit con memorie RAM La figura 2.5.2 mostra l'interfacciamento a 16 bit del microprocessore con due memorie RAM. Il bus dei dati viene sdoppiato ed inviato alle due memorie: D0D7 alla memoria in basso e D8D15 alla memoria in alto. Gli indirizzi da A1 ad An vengono inviati in parallelo alle due memorie. Il segnale di abilitazione delle singole memorie arriva da una combinazione della linea di chip select CSn# e dei segnali BLE# e BHE#. Il segnale BLE# indica che sul bus presente la parte bassa dei dati (D0D7) e quindi viene usato per abilitare la memoria in basso. Il segnale BHE# indica che sul bus presente la parte alta dei dati (D8D15) e quindi viene usato per abilitare la memoria in alto.
Fig. 2.5.2 Queste due diverse modalit di interfacciamento per EPROM e per RAM sono usate nel Modulo E24.
2.6 Configuracin
Las mltiples prestaciones del microprocesador 80386EX son adaptadas para las diferentes aplicaciones mediante la programacin del dispositivo. Esta programacin consiste en la escritura de los regstros de configuracin del microprocesador. El primer registro para configurar es la Address Configuration Register. Permite seleccionar las direcciones de todos los registros de configuracin en dos posibles modalidades: Modalidad DOS compatible Modalidad expansa. En el mdulo E24 es utilizada la modalidad expansa. Es obtenida escribiendo un '1' en el bit 15 del registro de configuracin de la direccin, como muestra en la figura siguiente.
Una vez seleccionada la modalidad expansa para las direcciones, la programacin de las diferentes perifricas internas consiste en la escritura de los relativos registri de configuracin. La figura de al lado muestra los campos de direccin asignados a los registros de las diferentes perifricas integradas en el microprocesador.
La programacin de los diferentes dispositivos es muy compleja y exige un estudio profundizado. No es solicitada en el uso del Mdulo E24 ya que el programador puede utilizar los diferentes recursos simplemente a travs de las interrupciones del BIOS, es ms contrariamente co la programacin directa de los dispositivos de I/O. Con el fin de ejemplo son ilustrados a continuacin los registros utilizados para la gestin de las puertas de I/O del microprocesador, y como se produce la programacin de la Puerta 1 en la entrada y la lectura de sus lneas.
;programming Port1 for input MOV AL, 0FFH MOV DX, P1LTC ;data-latch register OUT DX, AL MOV AL, 0FFH ;1111 1111 1=In, 0=Out MOV DX, P1DIR ;direction register OUT DX, AL MOV AL, 000H ;0000 0000 0=I/O pin MOV DX, P1CFG ;configuration register OUT DX, AL MOV DX,P1PIN IN AL,DX ;Status register ;read port
Pgina blanca
Requisiti:
Contenidos:
Estructura del mdulo DL 3155E24 Seccin de microprocesador y memorias Seccin de teclado, display LCD Seccin de puerto paralelo, de serie, convertidores A/D y D/A Otros dispositivos
Pgina blanca
En el mismo son presentes los siguientes bloques y dispositivos, que sern descritos con detalle en las pginas siguientes: El microprocesador 80386EX La memoria EPROM de sistema M4 (32KB) El espacio para una memoria EPROM usuario M3 (32KB) Las memorias RAM M1+M2 (64 KB) El teclado (KEYBOARD) El display LCD La interfaz de serie RS-232 La interfaz paralela El pulsador de reset del microprocesador El display de 7 segmentos Las sondas lgicas El conector de interrupciones, timer, bus de serie El convertidor A/D El convertidor D/A
Pgina blanca
Pgina blanca
Fig. 3.3.1
Interfaz de 16 bit con memorias RAM La figura 3.3.2 muestra el interfaz de 16 bit del microprocesador con dos memorias RAM. Se utilizan memorias RAM de 32KB del tipo 62256.
El bus de los datos es desdoblado y enviado a las dos memorias: D0D7 a la memoria M2 y D8D15 a la memoria M1. Las direcciones de A1 y A15 son enviadas en paralelo a las dos memorias. La seal de habilitacin de las memorias llega de una combinacin de la lnea de chip select CS1# y de las seales BLE# y BHE#. La seal BLE# indica que en el bus est presente la parte baja de los datos (D0D7) y entonces es usado para habilitar la memoria M2. La seal BHE# indica que en el bus est presente la parte alta de los datos (D8D15) y entonces es usado para habilitar la memoria M1. Las dos RAM cubren el campo de direcciones de 00000 a FFFFH por un total de 64KB.
Fig. 3.3.2 El rea de memoria de 00000H a 00FFFH est reservada al monitor para la memorizacin de los vectores de interrupcin, de los datos de servicio y del stack. Para los programas de usuario est reservada al rea de memoria de 001000H a 0FFFFH (60KB).
3.4 Teclado
El teclado es el dispositivo con el quee usuario comunica con el sistema. Contiene las teclas relativas a los caracteres hexadecimales (0F) y las teclas para los mandos para impartir al sistema. En el mdulo E24 la gestin del teclado est reservada al microcontrolador ST6220. El microcontrolador lee el teclado para verificar si ha sido presionada una tecla y salva el cdido en la propia memoria. Cuando el microprocesador 80386EX interroga el microcontrolador a travs del bus de serie, este ltimo vuleve el cdigo de la tecla presionada. La lnea P2.4 del microprocesador 80386EX es utilizada para generar la seal de habilitacin (CS) para el microcontrolador. Las lneas P3.5 y P3.7 son utilizados respectivamente para leer los datos que proceden del microcontrolador y para generar el clock de lectura. La operacin de lectura ha sido desarrollada por la interrupcin software 09H .
Fig. 3.4.1 Para todas las informaciones relativas a los mandos y al significado de cada tecla se consultan los 'Manuals'.
Pgina blanca
Para las informaciones relativas a la programacin directa del LCD vese en los 'Manuales'.
Pgina blanca
El mdulo E24 est dotado de una interfaz de serie asncrona RS-232. La interfaz de serie asncrona RS-232 del Mdulo E24 es obtenida utilizando la Asynchronous Serial I/O Unit N.1 del microprocesador 80386EX. Las lneas a disposicin son: TXD1, RXD1, RTS1, CTS1.
Se necesita solamente un componente externo, el Transceiver MAX 232 (IC2) para la daptacin de las seales de los niveles -12/+12V del estndar RS-232.
La programacin y el uso de la interfaz RS-232 es hecha a travs de la interrupcin software INT 14H (descrita en los 'Manuals').
Pgina blanca
Para mandar el display de 7 segmentos basta entonces hacer una operacin de OUT en la direccin 0010H. LOGIC PROBES Hay disponibles N.2 sondas lgicas de nivel para la visualizacin del estado de las seales lgicas a travs del LED. Las entradas de las sondas estn dotadas de resistencia de pull-up. Los LED se apagan cuando son conectados en puntos de nivel lgico bajo.
INTERRUPT/TIMER/SERIAL BUS Esta seccin del Mdulo E24 est dotada de un conector donde son indicadas las seales de interrupcin del microprocesador, de gestin del timer y aquellos usados por el bus de serie de conexiones del teclado y de los convertidores A/D y D/A. El detalle de las seales disponibles est indicado a continuacin. INT0 Seal de interrupcin ocultable N.0 INT1 Seal de interrupcin ocultable N.1 TMRGATE Puerta de entrada del timer/counter que permite controlar las operaciones de cuenta TMRCLK Entrada de clock externo del timer/counter TMROUT Salida del timer/counter Lnea de entrada (hacia el 386EX) del bus de serie. Est gestionada por la lnea P3.5 DIN del microprocesador Lnea de entrada (por el 386EX) del bus de serie. Est gestionada por la lnea P3.6 del DOUT microprocesador Lnea de clock (generado por el 386EX) del bus de serie. Est gestionada por la lnea SCLK P3.7 del microprocesador.
Requisiti:
Contenidos:
Introduccin al lenguaje Assembler Elementos base del lenguaje Assembler Instrucciones Modos de Gua Fases del desarrollo de un Programa Edit de un programa Asemblamiento de un programa Enlace de un Programa Verificacin de funcionamiento de un programa
Pgina blanca
Pseudo instrucciones Son mandos utilizados durante el proceso de montaje (por el Assembler), que no eson traducidos en instrucciones de la mquina ejecutables por la CPU. Ejemplo:
DSEG SUB1 SEGMENT PARA PUBLIC 'DATA' PROC NEAR ..... ENDP END
Comentarios Son palabras o frases introducidas por el programados para hacer el programa ms comprensible; sirven al programador mismo y a quien analizar en el futuro el cdigo. Son ignorados por el montador, que se limita a visualizarlos cuando se exige el listado del programa. Todos los caracteres compredidos entre un ; y un <CR> son considerados comentarios. Ejemplo:
INIT: MOV AX,BX ;Carica AX con il contenuto di BX
Identificadores Son usados como nombres asignados a entidades definidas por el programador (segmentos, variables, label, etc.). Estn compuestos por letras, nmeros o uno de los tres caracteres @ ? _, pero no pueden iniciar con un nmero. Tienen una longitud mxima de 31 caracteres. Constantes Se pueden utilizar constantes: binarias: 001101B optales: 15O, 15Q hexadecimales: 0Dh, 0BEACh (deben iniciar con un nmero) decimales: 13, 13D ASCII: S, Salve reales en base 10: 2.345678, 112E-3. Expresiones Se pueden utilizar los siguientes operadores: artimticos: (+,-,*,/, MOD, SHL, SHR) lgicos: (AND, OR, XOR, NOT) relacionales: (EQ, NE, LT, GT, LE, GE) que devuelven un valor: ($, SEG, OFFSET, LENGTH, TYPE) atributos: (PTR, DS:, ES:, SS:, CS:, HIGH, LOW).
Instrucciones El Assembler para los microprocesadores Intel hace disponible un elevado nmero de instrucciones, reagrupables en las siguientes clases: Trasferencia de Datos Aritmticas Manipulacin de Bit Trasferencia de Control Manipulacin de Cadenas Manipulacin de Interrupciones Control del Procesador En las pginas siguientes son enumeradas las instrucciones relativas a las clases precedentes. Para una descripcin detallada de las instrucciones hgase referencia a la seccin relativa a Instrucciones y programacin de los microprocesadores Intel en la documentacin on-line, reclamable con el link 'manuals' arriba en esta pgina.
4.3 Instrucciones
Son enumeradas en esta pgina las instrucciones ms importantes de los microprocesadores Intel. Para una descripcin detallada de las instrucciones hgase referencia a la seccin relativa a Instrucciones y programacin de los microprocesadores Intel en la documentacin on-line, reclamable con el link 'manuals' arriba en esta pgina.
Uso general
MOV POP PUSH XCHG XLAT Input/Output IN OUT Trasformacin LDS de direcciones LEA LES Trasformacin LAHF Flag register SAHF POPF PUSHF Instrucciones Aritmticas
OpCode
Move (Byte or Word) Pop a Word onto Stack Push Word onto Stack Exchange Register Translate Input Byte or Word Output to Port Load Pointer Using DS Load Effective Address Load Pointer Using ES Load Register AH From Store register AH into Pop Flags from the Stack Push Flags onto Stack
Descripcin
Suma
Resta
Multiplicacin
AAA ADC ADD DAA INC AAS SUB SBB DAS DEC CMP NEG AAM IMUL MUL
ASCII Adjust after Addition Add with Carry Addition Decimal Adjust after Addition Increment ASCII Adjust after Subtraction Subtract Subtract with Borrow Decimal Adjust after Subtraction Decrement Aparece Negate ASCII Adjust after Multiply Integer Multiply, Signed Multiply, Unsigned
Divisin
Conversin
ASCII Adjust before Division Divide, Unsigned Integer Divide, Signed Convert Byte to Word Convert Word to Doubleword
Lgicas
De Traslacin
Di Rotazione
AND OR XOR NOT TEST SAL SAR SHL SHR ROL ROR RCL RCR
Logical AND Logical OR Exclusive OR Logical NOT Test Shift Arithmetic Left (=SHL) Shift Arithmetic Right Shift Logical Left (=SAL) Shift Logical Right Rotate Left Rotate Right Rotate through Carry Left Rotate through Carry Right
Saltos incondicionados
Salti condizionati
CALL RET JMP JA, JNBE JAE, JNB JB, JNAE, JC JBE, JNA JCXZ JE, JZ JG, JNLE JGE, JNL JL, JNGE JLE, JNG JNC JNE, JNZ JNO JNP, JPO
Call Procedure Return from Procedure Jump Unconditionally Jump If Above Jump If Above or Equal Jump If below Jump If below or Equal Jump if CX Register Zero Jump if Equal Jump if Greater Jump if Greater or Equal Jump if Less Jump if Less or Equal Jump if No Carry Jump if Not Equal Jump if No Overflow Jump if No Parity
JNS JO JP, JPE JS Instrucciones iterativas LOOP LOOPE, LOOPZ LOOPNE, LOOPNZ
Jump if No Sign Jump if Overflow Jump if Parity Jump if Sign Loop on Count Loop While Equal Loop While Not Equal
Instrucciones de Desplazamiento
Instrucciones de Confronto
Instrucciones de Bsqueda
Instrucciones de Carga
Instrucciones de Escritura
MOVS MOVSB MOVSW CMPS CMPSB CMPSW SCAS SCASB SCASW LODS LODSB LODSW STOS STOSB STOSW
Move String (Byte or Word) Move String Byte Move String Word Aparece String (Byte o Word) Aparece String Byte Aparece String Word Scan String (Byte o Word) Scan String Byte Scan String Word Load String (Byte or Word) Load String Byte Load String Word Store String (Byte or Word) Store String Byte Store String Word
Descripcin
Prefijos de repeticin
OpCode
Prefijos de repeticin
Repeat Repeat While Equal Repeat While Not Equal Repeat While Not Zero Repeat While Zero
Manipulacin de Interrupciones
Sincronizacin
Instruccin Nula
CLC CLD CLI CMC STC STD STI ESC HLT LOCK WAIT NOP
Clear Carry Flag Clear Direction Flag Clear Interrupt-Enable Flag Complement Carry Flag Set Carry Flag Set Direction Flag Set Interrupt Enable Flag Escape Halt Lock the Bus Wait No Operation
Register Indirect Addressing Formato Assembler: El Effective Address del [<registro>] operando est contenido en uno de los siguientes registros: - Base; - Index Register (DI o bien SI); - Base Pointer (BP). Es denominado Indirect porque en la instruccin est indicado donde encontrar la direccin del operando. Base Relative Addressing Formato Assembler: El Effective Address del [ < registro>+<displacement> ] operando es claculado sumando el contenido de uno de los Base Register (BX o BP) a un displacement representado por una constante presente en la instrccin misma. Direct Indexed Addressing Formato Assembler: El Effective Address del <variable>[SI] operando es calculado <variable>[DI] sumando el valor de un offset, contenido en una variable, a un displacement, contenido en uno de los Index Register (SI o DI). BaseIndexed Addressing Formato Assembler: El Effective Address del < variable>[BX]+[SI] operando es calculado como <variable>[BX]+[DI] suma de los siguientes <variable>[BP]+[SI] trminos: <variable>[BP]+[DI] - contenido de uno de los Base Register (BX o BP); - contenido de uno de los Index Register (SI o DI); - un displacement contenido en la instruccin misma.
Pgina blanca
Pgina blanca
Una vez que haya sido generada el file .EXE se puede anaizar su contenido con el mando Dump en el E24ide. La figura siguiente muestra la ventana del mando Dump:
debe notarse como los programas generados por el linker inician en la direccin 0200h. Esta introduccin deriva del ambiente MS-DOS. El cdigo hexadecimal visible en la ventana Dump puede ser utilizado para la introduccin manual del programa en el mdulo E24. Los cdigos hexadecimal de la ventana Dump, a partir de la direccin 0200h, deben ser introducidos en la memoria del Mdulo e24 a partir de la direccin 0100:0000.
Pgina blanca
1996 - 2012 DE LORENZO SPA - Printed in Italy - All right reserved DE LORENZO SPA V.le Romagna, 20 - 20089 Rozzano (MI) Italy Tel. ++39 02 8254551 - Fax ++39 02 8255181 E-mail: info@delorenzo.it Web sites: www.delorenzoglobal.com - www.technical-education.it www.delorenzoenergy.com