2010-07-28 7 views
5

저는 최근에 Motorola 68000 프로그래밍을 다시 방문했습니다. 틀림없이, 내가 코스를 들었을 때 나는 그냥 지나쳐야 할 (그리고 끔찍한 교수가) 필요한 것을했다. 그러나 지금 나는 실제로 그 물건에 관심이있다.다른 68k 시뮬레이터에는 다른 트랩 작업이 있습니까?

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

Easy68k에 컴파일되지,하지만이 책은 ASM68K referenced있다 : 어쨌든, 내 오래 된 교과서 The 68000 Microprocessor by James L. Antonakos를 통해보고, 그 다음 코드를 사용합니다. 이 코드를 변경하면 효과가있었습니다.

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

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

END START 

이것은 컴파일러의 차이점 때문입니까? 아니면 여기서 더 큰 것을 놓치고 있습니까? 시뮬레이터에서 TRAP #15은 그 당시에 레지스터 D0에 있던 작업을 실행하지만 시뮬레이터 당 다른 트랩 작업이 있습니까, 아니면 모든 68000 프로세서에서 표준이되는 것을 알고 있습니까?

감사합니다.
토마스

답변

8

TRAP 명령은 메모리 어딘가에있는 롱 워드가 가리키는 루틴을 호출하기 만합니다. 그 부분은 모든 68000 CPU에 공통적 인 부분입니다. 그 longword가 가리키는 곳과 그것이 가리키는 루틴이하는 곳 (그리고 당신이 그것을 어떻게 전달하는지 등등)은 특정 시스템에 달려있다.

(예 : Atari ST는 TRAP을 사용하여 OS를 호출했으며 일반적으로 스택의 모든 관련 정보를 전달했습니다. 레지스터 내용은 무시되었습니다. Mac OS "System"이 TRAP과 비슷한 방식으로 사용 된 것 같습니다. Amiga는 전혀 사용하지 않았습니다.)

+0

+1 아타리와 아미가 OS 호출 방식의 차이점을 언급합니다. :) –

+0

나는 단지 내 모든 코드의 끝에서 트랩 # 11을 사용하여 기억하고있는 것처럼 보입니다. 그 날에 돌아 왔습니다 (flite ftl-68k는 ... 미안합니다). 나는 가정교사가 "OS에 대한 제어권 만 반환한다"는 것을 기억합니다. –

3

68000은 16 개의 사용자 트랩 (소프트웨어 인터럽트/예외)을 제공하지만 그 기능을 지정하지는 않습니다. 시뮬레이터 또는 Amiga, Atari ST 등 시스템 BIOS/OS에 달려 있습니다.이 문서 http://www.easy68k.com/files/EASy68KQuickRef.pdf의 맨 아래에있는 Easy68k의 트랩 15에서 수행되는 작업 목록을 찾을 수 있습니다.

관련 문제