• Domingo 22 de Diciembre de 2024, 12:43

Autor Tema:  Programa Ensamblador  (Leído 1563 veces)

arturo_killo

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Programa Ensamblador
« en: Miércoles 11 de Enero de 2006, 13:11 »
0
Aquí tenéis el enunciado de una práctica que tengo que realizar, ando un poco perdido y era por ver si alguien podía echarme una mano. Os dejo también un bosquejo del programa que hay que realizar. El lenguaje es el ensamblador del procesador Motorola MC68000. Gracias.


 Enunciado:

La práctica consiste en el desarrollo de un sistema controlador de diodos
mediante interruptores. Para llevar a cabo la conexión entre los interruptores y
los diodos vamos a emplear la VIA MC6522 que nos proporciona una
comunicación paralela con el microprocesador MC68000.
Para ello se empleará el puerto A de la VIA2 y se configurará de forma que los 4
bits menos significativos del mismo trabajen en modo lectura y los 4 bits más
significativos en modo escritura. El programa a desarrollar se encargará de leer
los bits correspondientes del puerto A para detectar el estado de los interruptores
y de escribir en los bits adecuados del mismo puerto para encender los leds
correspondientes. La lectura se realizará suponiendo que los 4 bits representan
un número en binario y la escritura se realiza en BCD (Binario codificado en
decimal). Entre la primera cifra y la segunda se deberá introducir un retardo, de
tal forma que se pueda visualizar las dos cifras.
La finalización de la ejecución del programa debe producirse cuando los 4
interruptores se encuentren a 0.
 

 Bosquejo:

*                SYMBOLS
      ORG   $25000

***************************************
* ZONA DE DATOS GLOBALES DEL PROGRAMA
***************************************
VIA_1      EQU   $60001
ORB      EQU   VIA_1+0
ORA      EQU   VIA_1+2
DDRB      EQU   VIA_1+4
DDRA      EQU   VIA_1+6
T1CL      EQU   VIA_1+8
T1CH      EQU   VIA_1+10
T1LL      EQU   VIA_1+12
T1LH      EQU   VIA_1+14
T2LL      EQU   VIA_1+16
T2CH      EQU   VIA_1+18
SR      EQU   VIA_1+20
ACR      EQU   VIA_1+22
PCR      EQU   VIA_1+24
IFR      EQU   VIA_1+26
IER      EQU   VIA_1+28
ORAE      EQU   VIA_1+30

***************************************
* PROGRAMA PRINCIPAL
***************************************

*Configuro la VIA
        MOVE.B  #$00,DDRA      Bits 0-7 de entrada (lectura)
        MOVE.B  #$FF,DDRB       Bits 0-7 de Salida (Escritura en LEDS)
        MOVE.B  #0,D1              Inicializo D1
        MOVE.B   #0,D0      Inicializo D0

*Repito el bucle mientras que algun conmutador se encuentre "on"
WHILE      MOVE.B   ORA,D0      Lectura estado de los conmutadores (bits 0-3 de D0)
        CMP    #0,D0
        BEQ   FIN_WHILE
        CMP   D0,D1   Comparo estado actual (D0) con estado anterior (D1)
        BEQ   WHILE      Si son iguales vuel a leer conmutadores
        MOVE.B   D0,D1
        MOVE.B  D1,ORB          Escribo en ORB (En los leds)
        BRA     WHILE
FIN_WHILE       MOVE.B  #$00,ORB        Pongo "0" en bits 4-7 para apagar los leds   STOP   #$2000
                END

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Programa Ensamblador
« Respuesta #1 en: Miércoles 11 de Enero de 2006, 19:50 »
0
No hacemos trabajos escolares.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.