2010-07-28 17 views
5

He estado revisando la programación de Motorola 68000 últimamente. Es cierto que cuando tomé el curso solo hice lo que era necesario para aprobar (y tuve un profesor horrible) ... pero AHORA estoy realmente interesado en las cosas. De todos modos, mirando a través de mi viejo libro de texto The 68000 Microprocessor by James L. Antonakos, se utiliza el siguiente código:¿Los diferentes simuladores de 68k tienen diferentes tareas de TRAP?

 ORG  $8000 
HMSG DC.B 'Hello!' 
     DC.B 0 
     ORG  #8100 
START MOVEA.L #HMSG,A3 
     TRAP #3 
     TRAP #9 
     END  START 

Esto no se compilará en Easy68k, pero el libro tiene ASM68K referenced. Cuando cambié el código a esto, funcionó.

 ORG $1000 
HSMG DC.B 'Hello!',0 

START LEA HSMG,A1 
     MOVE #14,D0 
     TRAP #15 

END START 

¿Esto se debe a diferencias entre los compiladores? ¿O me estoy perdiendo algo más grande aquí? Entiendo que en el simulador TRAP #15 se ejecuta cualquier tarea que esté en el registro D0 en ese momento, pero ¿hay diferentes tareas de captura por simulador, o es ese estándar en todos los 68000 procesadores?

Gracias!
Thomas

Respuesta

8

La instrucción TRAP simplemente llama a una rutina apuntada por una palabra larga en algún lugar de la memoria. Esa parte del comportamiento es común a todas las 68000 CPU. Donde señala esa palabra clave, y qué hace la rutina que señala (y, por lo tanto, cómo la pasa, los datos que necesita, etc.) depende del sistema en particular.

(El Atari ST usó TRAP para llamar al sistema operativo, y generalmente pasó toda la información relevante en la pila. Los contenidos del registro se ignoraron. Creo que el "Sistema" Mac OS usó TRAP de manera similar, también , y el Amiga no lo usó en absoluto.)

+0

+1 por mencionar la diferencia entre los esquemas de llamadas Atari y Amiga OS. :) –

+0

Solo parece recordar el uso de TRAP # 11 al final de todo mi código, en el día (flite ftl-68k representa ... lo siento). Recuerdo que el tutor me dijo que "simplemente devuelve el control de la placa al sistema operativo". –

3

El 68000 proporciona 16 capturas de usuario (interrupciones/excepciones de software) pero no especifica lo que hacen. Eso se debe al sistema BIOS/OS, ya sea un simulador o Amiga, Atari ST, etc. Puede encontrar una lista de tareas realizadas por TRAP 15 en Easy68k en la parte inferior de este documento http://www.easy68k.com/files/EASy68KQuickRef.pdf.

Cuestiones relacionadas