Принципи програмування мікропроцесорів (лекція)

Принципи програмування мікропроцесорів (Лекція)

1. Програмування мікропроцесора

2. Машинно-орієнтовані мови

3. Мови високого рівня

4. Спеціалізовані мови

1. Програмування мікропроцесора

Принциповим гідністю МП є программируемость. Це означає, що, подаючи на вхід МП команди, можна забезпечити потрібну послідовність операцій, тобто реалізацію певного алгоритму. Алгоритм розв'язуваної задачі може бути як завгодно складним, необхідно лише, щоб цей алгоритм був розбитий на кроки відповідно до системи команд МП. Тому система команд важлива не тільки з точки зору, що МП може робити, але і як виконується алгоритм. Наявність або відсутність будь-якої команди або групи команд може істотно вплинути на вибір МП для конкретного застосування.

Повертаючись до мовно-програмним класифікаційними характеристиками, не можна не згадати про мови програмування.

Всі мови програмування умовно можна розділити на три рівні:

- автокод (мова асемблера);

- мови високого рівня (процедурні мови - BASIC, FORTRAN, PASCAL, C, MODULA-2, ADA, і мови штучного інтелекту - LISP, PROLOG, SMALLTALK, OCCAM).

Зрозуміліші для ЕОМ - це так звані машинно-орієнтовані мови (машинний код і мова асемблера). Зрозуміліші для людини іменують мовами високого рівня.

Програмне забезпечення на машинно-орієнтованої мови економічно в експлуатації, проте порівняно висока трудомісткість і тривалість розробки програмного забезпечення обумовлюють переважне застосування їх для створення і розвитку програмного забезпечення драйверів і операційних систем з метою найкращого використання апаратних особливостей кожної конкретної ЕОМ.

Алгоритмічні мови (мови програмування високого рівня загального призначення) є машинно-незалежними, дозволяють створювати компактні доступні для огляду програми при відносно невеликих витратах часу і праці програмістів. Розробка програм значно спрощується при використанні мов високого рівня в якості мов програмування. Однак при цьому знижується ефективність програм за швидкодією і витратам пам'яті в порівнянні з застосуванням мови асемблера. Але цей недолік з лишком перекривається чіткістю і легкістю написання програми.

Мови високого рівня в свою чергу поділяються на мови процедурного (або імперативного) і евристичного (декларативного) стилю програмування (мови штучного інтелекту). Найбільш популярні мови програмування ПЕОМ високого рівня наведені в таблиці 1.

Крім того, в даний час з'явилися мови так званого 4-го покоління - це мови СУБД, електронних таблиць, інтегрованих систем і т.д. які призначені для вирішення вузького кола завдань прикладного характеру (наприклад, обробка баз даних), але зате ще більше, в порівнянні з мовами загального призначення, знижують витрати часу і праці на створення вихідного продукту.

Досвід застосування ПЕОМ для побудови прикладних систем обробки даних показує, що найефективнішим інструментом створення контролера не є універсальні мови високого рівня, а вузькоспеціалізовані мови - як правило мови високого маніпулювання з особливостями мікропроцесора.

Система микропрограммирования є набором компактних програмних продуктів для розробки програм для мікропроцесорів. СМ реалізована для роботи на ряді комп'ютерів, від невеликих 16-розрядних персональних машин до 32-розрядних супермінікомпьютеров.

У ньому є ряд прикладів використання як стандартних, так і мають особливості засобів РМ. Відзначимо, що незалежні засоби асемблера СМ дуже прості й ефективні.

СМ асемблери - це потужні МАКРО-асемблери із засобами переміщення програм, з універсальними характеристиками і застосуванням. Хоча асемблери створені на базі одного і того ж основного пакету, вони мають високий ступінь сумісності з асемблера розробників мікропроцесорів. Основні предмети - це способи використання асемблера, підтримка модульного програмування та зв'язок з мовами високого рівня.

Все асемблери двопрохідні, виконуються як одна програма. Під час виконання не створюється тимчасових файлів.

Все асемблери, так само як і Х LINK, використовують для внутрішніх обчислень 32-розрядні структури, що дозволяє віртуально генерувати код будь-якого розміру (тобто не існує межі в 64 кбайт. Що могло б ускладнити використання процесорів типу 68000).

Для забезпечення сумісності всередині пакету було застосовано декілька компромісних рішень, з урахуванням сумісності з асемблера розробників мікропроцесорів. Особливо це стосується макро-конструкцій, які сильно розрізняються у різних розробників. Багато в чому, проте, СМ перевершує оригінальні асемблери.

Вони повинні бути сумісні з.

- машинним командам (іменах і синтаксису)

- директивам визначення констант (іменах і синтаксису)

- директивам розподілу пам'яті (іменах і синтаксису)

Можуть бути не сумісні з:

- засобам умовної трансляції

- опцій і командам управління асемблером

Зауважимо, що кошти, перераховані в розділі "не сумісні", часто відрізняються від оригінальних ассемблеров розробників тільки синтаксисом.

Найбільш популярними на сьогоднішній день у програмістів є С-51 і Assembler 8051, так як обидва вони дозволяють отримувати вихідний код.