Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2_kurs / Тищенко / СТИСЛІ ВІДПОВІДІ НА ПИТАННЯ ДЛЯ ДЕРЖАВНОЇ АТЕСТАЦІЇ.doc
Скачиваний:
34
Добавлен:
02.03.2016
Размер:
458.75 Кб
Скачать
  1. Види адресації в мікропроцесорній управляючій системі.

В качестве примера адресации данных в микропроцессорной управляющей системе рассмотрим способы адресации микроконтроллеров семейства MCS-51 как типичного и наиболее массовых представителей управляющих микроконтроллеров.

Набор команд MCS-51 поддерживает следующие режимы адресации:

  • Прямая адресация - операнд определяется 8-битовым адресом в инструкции. Прямая адресация используется только для младшей половины внутренней памяти данных и регистров SFR;

  • Косвенная адресация - инструкция адресует регистр, содержащий адрес операнда. Данный вид адресации используется для внешнего и внутреннего ОЗУ. Для указания 8-битовых адресов могут использоваться регистры R0 и R1 выбранного регистрового банка или указатель стека SP. Для 16-битовой адресации используется только регистр указателя данных DPTR;

  • Регистровые инструкции - регистры R0–R7 текущего регистрового банка могут быть адресованы через конкретные инструкции, содержащие 3-битовое поле, указывающее номер регистра в самой инструкции. В этом случае соответствующее поле адреса в команде отсутствует. Операции с использованием специальных регистров: некоторые инструкции используют индивидуальные регистры (например, операции с аккумулятором, DPTR, и т. д.). В данном случае адрес операнда вообще не указывается в команде. Он предопределяется кодом операции;

  • Непосредственные константы - константа может находиться прямо в команде за кодом операции;

  • Индексная адресация - индексная адресация может использоваться только для доступа к программной памяти и только в режиме чтения. В этом режиме осуществляется просмотр таблиц в памяти программ. 16-битовый регистр (DPTR или программный счетчик) указывает базовый адрес требуемой таблицы, а аккумулятор указывает на точку входа в нее.

  • Ячейки памяти с битовой адресацией - кроме прямого (побайтного) доступа к памяти данных 16 ячеек этой памяти с адресами 0x20 - 0x2F доступны также как 128 индивидуально адресуемых бит. Бит 0 байта 0x20 имеет битовый адрес 0x00, а бит 7 байта 0x20 имеет битовый адрес 0x07. Бит 7 байта 0x2F имеет битовый адрес 0x7F. Битовый доступ можно отличить от байтового доступа по типу используемой команды (операнды исходных данных и результата в первом случае являются битами, во втором – байтами).

  • Стек - Программный стек может быть размещен в любом месте 256-байтной памяти данных. Область стека определяется с помощью указателя стека. Stack Pointer - SP (0x81) будет указывать на последнюю использованную ячейку. Следующее значение, загружаемое в стек, размещается по адресу SP+1, и затем SP инкрементируется. При сбросе SP инициализируется значением 0x07. SP следует инициализировать адресом ячейки ОЗУ, не используемой для хранения данных. Стек может иметь глубину до 256 байт.

  1. Мови розробки програмного забезпечення мікропроцесорних управляючих систем. Асемблер і си, достоїнства та недоліки, сфери застосування.

Используемый для программирования микроконтроллеров управляющих систем язык ассемблера (например, А51) представляет собой макроассемблер со свободным форматом, поддерживающий метод модульного программирования, т.е. генерирующий переместимый объектный файл. В каждой строке программы можно записать команду микроконтроллера или директиву ассемблера (псевдокоманду). Команда может быть помечена символической меткой, а директива может быть снабжена именем.

Каждая строка программного кода на языке ассемблера может содержать до четырех полей: поле имени (метки), поле операции, поле операндов и поле комментария. Поле имени (метки) отделяется пробелом (в случае имени) или двоеточием (в случае метки). Поле операции отделяется от поля операндов пробелом. Операнды, если их несколько, отделяются друг от друга запятой. Поле Комментария должно начинаться со знака точка с занятой.

В поле операции для команды необходимо использовать стандартные мнемоники (аббревиатуры) команд, а для директив ассемблера - зарезервированные слова ассемблера.

В поле операндов для директив ассемблера используют константы или символьные имена. Команда МК в качестве операндов может использовать стандартные имена регистров, символические имена, числовые данные или выражения. Числовые данные могут быть представлены в шестнадцатеричной, десятичной, восьмеричной или двоичной системах счисления.

Используется также оптимизирующий компилятор, поддерживающий стандарт языка Си, разработанный Американским национальным институтом стандартизации (ANSI American National Standards Institute). Компилятор имеет встроенный препроцессор, который обрабатывает исходный программный код, прежде, чем он будет транслирован в объектный код. Задача препроцессора - заместить или вставить дополнительные фрагменты в исходный код перед компиляцией. Благодаря препроцессору поддерживаются такие возможности языка, как файлы заголовков, макросы и условная компиляция.

Несмотря на то что результат компиляции программ на языке Си безусловно проигрывает в эффективности коду, который может быть получен при использовании языка ассемблера, компилятор С51 является незаменимым инструментом при проектировании программ, содержащих сложные математические вычисления, где он позволяет в десятки раз сократить время проектирования.

При проектировании средств автоматики повышение требований к микроконтроллеру (а значит его удорожание), связанное с неэффективностью кода выдаваемого компилятором с языка Си, многократно окупается снижением затрат на программирование. Поэтому язык ассемблера применяется только при разработке многотиражных изделий (бытовая техника, игрушки) и отдельных, критичных к времени выполнения, подпрограмм для программ на языке Си.