]]> ]]>

Motorola 68k

Реализация языка программирования Assembler

Motorola 68K — семейство СISC процессоров от Motorola, основной конкурент Intel в 80x и ранних 90x. Линейка процессоров m68k использовалась на различных системах, от калькуляторов Texas Instruments, до критичных систем управления Спейс Шаттла. На 68k было построено множество платформ ПК.

В мире существует множество программистов знающих и любящих ассемблер m68k. Поэтому, многие производители выбирали и выбирают эти процессоры в связи с наличием удобных инструментальных средств, продуманной архитектурой, быстрым прохождением этапов от опытного образца до готового продукта. По всем этим критериям с процессорной линейкой m68k может конкурировать только ARM.

Инструкции 68k можно разделить на несколько крупных групп:

  • Операции с памятью (Load&store — Move.B, Move.W, Move.L);
  • Арифметика (Add, Sub, Mul, Div);
  • Побитное смещение (влево и вправо, логическое и арифметическое);
  • Циклические битовые сдвиги (ROR, ROL, ROXL, ROXR);
  • Логические операции (And, Or, Not, EOr);
  • Конверсия типов (байт в слово и наоборот);
  • Условное и безусловное ветвление (Bra, BCS, BEq, BNE, BHI, BLO, BMI, BPL, etc.);
  • Вызов подпрограмм и возврат из них (BSR, RTS);
  • Управление стеком (push, pop);
  • Вызов и обработка прерываний;
  • Обработка ошибок и исключений.

Процессоры семейства m68k

  • I поколение:

      Motorola 68000
      Motorola 68008 
      Motorola 68010 
      Motorola 68012
      Motorola 68000L
      Motorola 68000L8
      Motorola 68HC000P8
      Motorola 68000P8
      Motorola 68000P12
      Motorola 68000P12F
      Motorola 68HC000P12F
      Motorola 68HC000RC10
      Motorola 68000R12
      Motorola 68000FN8
      Motorola 68HC000FN8
      Motorola 68000FN10
      Motorola 68HC000FN12
      Motorola 68HC000FN12F
      Motorola 68EC000FN16
      Motorola 68HC000FN16
    
  • II поколение — 32-битные:

      Motorola 68020
      Motorola 68EC020
      Motorola 68030
      Motorola 68EC030
    
  • III поколение — конвейерные:

      Motorola 68040
      Motorola 68EC040
      Motorola 68LC040
    
  • IV поколение — суперскалярные:

      Motorola 68060
      Motorola 68EC060
      Motorola 68LC060
    
  • Потомки m86k:

      Motorola CPU32 (Motorola 68330)
      Motorola 68360 (QUICC)
      ColdFire
      Motorola DragonBall
    

Примеры:

Hello, World!:

Пример для версий Amiga
        move.l  #DOS
        move.l  4.w,a6
        jsr     -$0198(a6)      ;OldOpenLibrary
        move.l  d0,a6
        beq.s   .Out
        move.l  #HelloWorld,d1

A)      moveq   #13,d2
        jsr     -$03AE(a6)      ;WriteChars

B)      jsr     -$03B4          ;PutStr

        move.l  a6,a1
        move.l  4.w,a6
        jsr     -$019E(a6)      ;CloseLibrary
.Out    rts

DOS          dc.b    'dos.library',0
HelloWorld   dc.b    'Hello World!',$A,0

Hello, World!:

Пример для версий AtariST
     move.l #helloworld,-(A7)
     move   #9,-(A7)
     trap   #1
     addq.l #6,A7
     move   #0,-(A7)
     trap   #1
helloworld:
     dc.b "Hello World!",$0d,$0a,0

Комментарии

]]>

blog comments powered by Disqus

]]>

Работа программистам