Está en la página 1de 2

PROGRAMAS

1.- Una simple suma:


Con este sencillo programa podremos ver como funciona el Asm68k, para realizar una sencilla 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 simulación
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 bloque a verificar
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

También podría gustarte