2010-07-28 7 views
5

Ostatnio przeglądałem oprogramowanie Motorola 68000. Wprawdzie kiedy wziąłem udział w kursie, zrobiłem to, co było konieczne, aby przejść (i miałem okropnego profesora) ... ale TERAZ jestem naprawdę zainteresowany tym materiałem. W każdym razie, patrząc przez mojego starego podręcznika The 68000 Microprocessor by James L. Antonakos, używa następujący kod:Czy różne symulatory 68k mają różne zadania TRAP?

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

Nie byłoby skompilować w Easy68k, ale książka ma ASM68K referenced. Kiedy zmieniłem kod do tego, zadziałało.

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

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

END START 

Czy jest to spowodowane różnicami między kompilatorami? Czy może brakuje mi czegoś większego? Rozumiem, że w symulatorze TRAP #15 wykonuje się jakiekolwiek zadanie w rejestrze D0 w tym czasie, ale czy istnieją różne zadania pułapek na symulator, czy też jest to standard we wszystkich procesorach 68000?

Dzięki!
Thomas

Odpowiedz

8

Instrukcja TRAP po prostu wywołuje procedurę, która jest wskazywana przez długi klucz gdzieś w pamięci. Ta część zachowania jest wspólna dla wszystkich procesorów 68000. Gdzie ten longword wskazuje i to, do czego prowadzi rutyna (a więc w jaki sposób przekazujesz mu potrzebne dane itd.) Zależy od konkretnego systemu.

(Atari ST na przykład używał TRAP do wywoływania systemu operacyjnego i generalnie przekazywał wszystkie istotne informacje na stosie .. Zawartość rejestru była ignorowana. Wierzę, że Mac OS "System" również używał TRAP w podobny sposób , a Amiga w ogóle go nie używa.)

+0

+1 za wskazanie różnic między schematami połączeń Atari i Amiga OS. :) –

+0

Wydaje mi się, że pamiętam tylko używając TRAP # 11 na końcu całego mojego kodu, z powrotem w dzień (flite ftl-68k reprezentuje ... przepraszam). Pamiętam, że tutor powiedział mi, że "po prostu zwraca kontrolę nad płytą do OS" –

3

68000 dostarcza 16 pułapek użytkownika (przerwań/wyjątków programowych), ale nie określa, co robią. To zależy od systemu BIOS/OS, czy to symulatora czy Amigi, Atari ST itp. Lista czynności wykonywanych przez TRAP 15 w Easy68k znajduje się na końcu tego dokumentu http://www.easy68k.com/files/EASy68KQuickRef.pdf.

Powiązane problemy