0 calificaciones0% encontró este documento útil (0 votos)
4 vistas2 páginas
Este documento presenta dos programas en lenguaje ensamblador para el procesador Motorola 68000. El primer programa realiza una simple suma de dos números almacenados en los registros D0 y D1. El segundo programa verifica el correcto funcionamiento de la memoria RAM detectando posibles fallos mediante la comprobación de valores escritos y leídos en la memoria.
Este documento presenta dos programas en lenguaje ensamblador para el procesador Motorola 68000. El primer programa realiza una simple suma de dos números almacenados en los registros D0 y D1. El segundo programa verifica el correcto funcionamiento de la memoria RAM detectando posibles fallos mediante la comprobación de valores escritos y leídos en la memoria.
Este documento presenta dos programas en lenguaje ensamblador para el procesador Motorola 68000. El primer programa realiza una simple suma de dos números almacenados en los registros D0 y D1. El segundo programa verifica el correcto funcionamiento de la memoria RAM detectando posibles fallos mediante la comprobación de valores escritos y leídos en la memoria.
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
Excel para principiantes: Aprenda a utilizar Excel 2016, incluyendo una introducción a fórmulas, funciones, gráficos, cuadros, macros, modelado, informes, estadísticas, Excel Power Query y más
Inteligencia artificial: Lo que usted necesita saber sobre el aprendizaje automático, robótica, aprendizaje profundo, Internet de las cosas, redes neuronales, y nuestro futuro
ChatGPT Ganar Dinero Desde Casa Nunca fue tan Fácil Las 7 mejores fuentes de ingresos pasivos con Inteligencia Artificial (IA): libros, redes sociales, marketing digital, programación...