Motorola 68k
Реализация языка программирования AssemblerMotorola 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
]]>