Освой компьютер
Программа же, которая
хранит в старшем байте неведомо что, на старших процессорах будет вызывать
сбой по ошибке шины (обращение к несуществующему устройству).
Конечно, самое главное и существенное различие - это система команд
процессора. Основное \"пополнение\" системы команд произошло на 68020:
процессор \"обзавелся\" новыми методами адресации, операциями с битовыми
полями и т.п. (см. таблицы - приложения 3 и 4). Очевидно, что
программа, использующая эти нововведения, не будет работать на 68000.
Самый простой выход - это писать программу чисто в кодах 68000: такая
программа будет работать на всей гамме процессоров. С другой стороны,
опять же очевидно, что нововведения 68020+ имели целью увеличить
производительность и эффективность кода. Если требуется максимальная
производительность, обычно выпускается несколько версий программы: под
68000, 68020 и 68040. Первая предназначена для 68000 и 68010, будет
работать и на следующих модификациях, но медленнее, чем работала бы в их
\"родных\" кодах. Версии под 68020 и 030 - как правило, одно и то же.
Версии под 68040 также обычно рассчитаны и на 68060. Кроме того,
существуют версии специально под 68060. Наиболее \"продвинутые\" программы
даже не имеют нескольких версий, а самостоятельно определяют тип процессора
и используют для разных процессоров разные критичные по быстродействию
участки кода.
Немного поясним такой момент, как кэш инструкций (inctruction cache)
процессора. В 68000 он не был реализован, поэтому этот момент в книге не
описан. Начиная с 68020, процессор имеет кэш инструкций - встроенный
блок памяти, в который помещаются коды исполняемых операций, и при частом
выполнении одних и тех же инструкций, процессор считывает их коды не из
памяти, а из кэша. Благодаря этому быстродействие значительно возрастает:
скорость считывания из кэша значительно превышает скорость памяти.
Однако, и здесь есть свои \"подводные камни\": старые программы (в основном
игрушки и demo) для достижения большой производительности частенько грешили,
так называемой, самомодификацией кода, т.е.
AMIGA: ПРОГРАММИРОВАНИЕ НА АССЕМБЛЕРЕ.
|