Разные симуляторы 68k имеют разные задачи TRAP? - PullRequest
5 голосов
/ 28 июля 2010

Я недавно пересматривал программирование Motorola 68000. По общему признанию, когда я взял курс, я только сделал то, что было необходимо пройти (и имел ужасного профессора) ... но СЕЙЧАС я фактически интересуюсь материалом. В любом случае, просматривая мой старый учебник Микропроцессор 68000 Джеймса Л. Антонакоса , он использует следующий код:

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

Это не скомпилируется в Easy68k , но книга содержит ASM68K со ссылкой . Когда я изменил код на это, это сработало.

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

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

END START

Это только из-за различий между компиляторами? Или я что-то здесь упускаю? Я понимаю, что в симуляторе TRAP #15 выполняет любую задачу, которая в данный момент находится в регистре D0, но существуют ли разные задачи прерывания для симулятора или это стандарт для всех 68000 процессоров?

Спасибо!
Thomas

Ответы [ 2 ]

8 голосов
/ 01 августа 2010

Инструкция TRAP просто вызывает процедуру, на которую указывает длинное слово где-то в памяти.Эта часть поведения является общей для всех 68000 процессоров.На что указывает это длинное слово и на что указывает рутина (и, следовательно, на способ передачи ему нужных данных и т. Д.), Зависит от конкретной системы.

(например, Atari ST использовал TRAPдля вызова в ОС, и вы, как правило, передали всю необходимую информацию в стеке. Содержимое регистра было проигнорировано. Я полагаю, что "Система" Mac OS тоже использовала TRAP аналогичным образом, и Amiga не использовала еевсе.)

3 голосов
/ 17 января 2012

68000 предоставляет 16 пользовательских ловушек (программные прерывания / исключения), но не указывает, что они делают. Это относится к BIOS / ОС системы, будь то симулятор или Amiga, Atari ST и т. Д. Список задач, выполняемых TRAP 15 в Easy68k, можно найти внизу этого документа http://www.easy68k.com/files/EASy68KQuickRef.pdf.

...