- •Классификация Микропроцессоров.
- •Функциональная схема эвм
- •Понятие об архитектуре микропроцессоров.
- •Характеристики и особенности процессоров с микропрограммным управлением и с фиксированным набором команд. Risc процессоры
- •Общие принципы выполнения команд в мп. Временные интервалы.
- •Состав и назначение регистров в микропроцессорах.
- •Набор и характеристики команд в мп.
- •Аримфетико-логическое устройство. Блок управления и синхронизации.
- •Организация стековой памяти
- •Регистровый и косвенно-регистровый методы адресации на примере Электроники-60.
- •Режим адресации с автоувеличением и косвенная адресация с автоувеличением на примере Электроники 60.
- •Режим адресации с автоуменьшением и косвенная адресация с автоуменьшением на примере Электроники 60
- •Индексные методы адресации на примере электроники 60.
- •Методы адресации с использованием программного счетчика в мЭвм электроника 60.
- •Методы адресации, используемые в микропроцессорах.
- •Характеристики команд пересылки данных в микропроцессорах.
- •Выполнение команд пересылки данных в мп
- •Характеристики команды преобразования данных в микропроцессоре.
- •Программирование на машинном языке.
- •Программирование на языке ассемблер.
- •Недостатки
- •Директивы и макрокоманды ассемблера
- •Понятие о прерываниях в микропроцессорах. Принципы организации обслуживания прерываний.
- •Структуры прямого доступа к памяти. Функции, выполняемые котроллером прямого доступа к памяти.
Недостатки
Главное преимущество ассемблера практически полностью нивелируется хорошей оптимизацией в современных компиляторах языков высокого уровня
В силу своей машинной ориентации («низкого» уровня) человеку по сравнению с языками программирования высокого уровня иногда сложнее читать и понимать программу, она состоит из слишком «мелких» элементов — машинных команд, соответственно усложняются программирование и отладка, растет трудоемкость, велика вероятность внесения ошибок. В значительной степени возрастает сложность совместной разработки.
Как правило, меньшее количество доступных библиотек по сравнению с современными индустриальными языками программирования.
Отсутствует переносимость программ на компьютеры с другой архитектурой и системой команд (кроме двоично-совместимых).
Директивы и макрокоманды ассемблера
Директи́вы ассе́мблера — параметры (ключевые слова) в тексте программы на языке ассемблера, влияющие на процесс ассемблирования или свойства выходного файла.Синтаксис задания зависит от ассемблера.
Программа на ассемблере может содержать директивы: инструкции, не переводящиеся непосредственно в машинные команды, а управляющие работой компилятора. Набор и синтаксис их значительно разнятся и зависят не от аппаратной платформы, а от используемого транслятора (порождая диалекты языков в пределах одного семейства архитектур). В качестве «джентельменского набора» директив можно выделить следующие:
определение данных (констант и переменных)
управление организацией программы в памяти и параметрами выходного файла
задание режима работы компилятора
всевозможные абстракции (то есть элементы языков высокого уровня) — от оформления процедур и функций (для упрощения реализации парадигмы процедурного программирования) до условных конструкций и циклов (для парадигмы структурного программирования)
макросы
Примером таких директив может является $INCLUDE, $NoList, $List
Макрос — символьное имя, заменяющее несколько команд языка ассемблера.
Макросы могут включать в себя инструкции, данные, метки (в том числе и локальные), директивы (в том числе условные) ассемблера, содержать вызов других макросов, могут принимать входные аргументы.
Большинство современных ассемблеров поддерживают передачу входных параметров макросу.
В зависимости от используемого ассемблера синтаксис объявления, вызова макросов и передачи им параметров может существенно различаться.
Макросы «разворачиваются» в последовательность кода и данных во время ассемблирования.
Перед тем как использовать макрос необходимо его объявить. Часто стандартные макросы уже находятся в готовом виде в стандартных подключаемых файлах. Для их использования в программе необходимо просто подключить нужный файл.
Начинается запись макроса с директивы MACRO заканчивается директивой ENDM.
Тут можно заметить некое сходство подпрограммами. Отметим особенности и того и этого способа повышения эффективности труда программиста.
Подпрограммы требуют перехода к другой части программы, в то время как макрос генерирует in-line подстановку. В программе содержится только один экземпляр данной подпрограммы, а тел данных макросов будет столько, сколько данных макросов содержится в программе.
Подпрограммы всегда генерируют одни и те же коды, в то время как макросы – нет. Изменяя параметры макроса при вызове мы, тем самым, изменяем и коды, генерируемые макросом. Таким образом, макрос является более универсальным инструментом, поскольку позволяет модифицировать коды применительно к определённой ситуации.
Подстановка макросов происходит на этапе ассемблирования на уровне исходных кодов. Подпрограмма же существует внутри программы, и требуется дополнительное время для передачи параметров и управления.
Достоинства
упрощение и ускорение написания программы
повышение компактности
повышение наглядности текста программы
Недостатки
использование «шаблонного кода» в то время как для каждой конкретной ситуации код, возможно, можно улучшить
использование одной процедуры, вызываемой N раз часто выгоднее использования вставки одного и того же макроса (генерирующего один и тот же код) N раз в текст программы
теряется «контроль над каждым байтом программы», именно по этой причине многие программисты не используют макросы