P R O G R A M A S
 
 
1.- Una simple suma: PRINCIPAL       ORG                 $1000              ;comienza en la direccion $1000
                            MOVE.L          #25,D0             ;pone 25 en D0
                            MOVE.L          #12,D1             ;pone 12 en D1
                            MOVE.L           D0,D2              ;pone el contenido de D0 en D2
                            ADD.L              D1,D2              ;suma el contenido de D1 con D2
FIN                      MOVE.B          #228,D7          ;finaliza la simulacion
                            TRAP               #14
                            END
 

2.- Prueba de la memoria RAM:

Se pretende detectar fallos en la memoria RAM, teniendo conocimiento de la posición exacta en que se produce el fallo. Una memoria RAM averiada puede entregar, bien un 0, bien un 1 en el bit que esta fallando, por lo que debemos efectuar una doble comprobación:   - se escribe $00 en un byte

- se comprueba que se lee $00

- se escribe $FF en un byte

- se comprueba que se lee $FF

Si las operaciones de lectura no proporcionan un dato igual al que previamente se ha descrito, se habrá detectado un fallo. Esto se puede comprobar con el siguiente programa.

Queda pendiente el desarrollo de una subrutina, llamada aviso.

 

 **********************************************************************************************
*       VERMEM.ASM
*       Verificación de un bloque de memoria
**********************************************************************************************
                             absolute
                             org                         $25000
Longitud            EQU                       $FFF                      ;tamaño del bloquverificar
DirInic                 EQU                       $26000                  ;dirección inicial del bloque
main                    move.w                 #Longitud,D0
                             move.l                   #DirInc,A1
                             bsr                         VerMem                  ;llama a la rutina
final                     bra.s                      final
**********************************************************************************************
* VerMem = Verifica el funcionamiento de un bloque de memoria
* A1 = Dirección inicial del bloque de memoria
* D0 = Longitud en bytes de dicho bloque (Word)
* Si hay fallo llama a una subrutina que genera un aviso.
* La dirección que produce el fallo es el contenido de A1 al hacer la llamada.
**********************************************************************************************
VerMem         move.w                 #0,(A1)                    ;Escribe un 0 en memoria
                        tst.b                       (A1)                          ;Lee y compara
                        bne                        fallo                          ;Si no es cero, hay fallo
                        move.b                  #$FF,(A1)               ;Escribe $FF en memoria
                        cmpi.b                   #$FF,(A1)+             ;Lee, compara y apunta a
                                                                                        ;la siguiente posición
                        bne                        fallo1                        ;Si no es $FF, hay fallo
                        dbf                         D0,VerMem            ;Repite hasta completar bloque
                        bra                        salir
fallo1               subq.l                   #1,A1                        ;A1=Dirección de fallo
fallo                  jsr                         Aviso
                        addq.l                    #1,A1                        ;Siguiente dirección a verificar
                        dbf                         D0,VerMem             ;Actualiza nºordm; de posiciones y
                                                                                         ;si no era la última continua
salir                 rts
                        end
**********************************************************************************************