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
]]>