2010-07-28 12 views
5

Ultimamente sto rivisitando la programmazione Motorola 68000. Certo, quando ho seguito il corso ho semplicemente fatto ciò che era necessario per passare (e ho avuto un professore orribile) ... ma ora sono davvero interessato alle cose. In ogni caso, guardando attraverso il mio vecchio libro di testo The 68000 Microprocessor by James L. Antonakos, egli utilizza il seguente codice:I simulatori 68k diversi hanno compiti TRAP diversi?

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

Questo non sarebbe compilare in Easy68k, ma il libro ha ASM68K referenced. Quando ho cambiato il codice, ha funzionato.

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

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

END START 

Ciò è dovuto alle differenze tra i compilatori? O mi manca qualcosa di più grande qui? Capisco che nel simulatore, TRAP #15 esegue qualsiasi attività nel registro D0 al momento, ma ci sono diverse attività trap per simulatore, o è lo standard su tutti i processori 68000?

Grazie!
Thomas

risposta

8

L'istruzione TRAP chiama solo una routine indicata da una parola lunga da qualche parte nella memoria. Quella parte del comportamento è comune a tutte le 68000 CPU. Laddove la parola "longword" punta e ciò che fa la routine a cui fa riferimento (e quindi come lo si trasmette, i dati necessari e così via) dipende dal particolare sistema.

(L'Atari ST per esempio utilizzato TRAP chiamare nel sistema operativo, e in genere superato tutte le informazioni utili in pila. Il contenuto del registro sono state ignorate. Credo Mac "Sistema" sistema operativo utilizzato TRAP in modo simile, troppo e l'Amiga non lo ha usato affatto)

+0

+1 per menzionare la differenza tra gli schemi di chiamata del sistema operativo Atari e Amiga. :) –

+0

Mi sembra di ricordare solo l'uso di TRAP # 11 alla fine di tutto il mio codice, nel giorno (flite ftl-68k rappresenta ... mi dispiace). Ricordo che il tutor mi ha detto che "restituisce solo il controllo della scheda all'OS" –

3

Il 68000 fornisce 16 trappole utente (interrupt/eccezioni software) ma non specifica cosa fanno. Questo dipende dal sistema BIOS/OS, che sia un simulatore o Amiga, Atari ST ecc. È possibile trovare un elenco di attività eseguite da TRAP 15 in Easy68k nella parte inferiore di questo documento http://www.easy68k.com/files/EASy68KQuickRef.pdf.

Problemi correlati