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

Систему команд условно можно разбить на пять групп: арифметические команды; логические команды; команды передачи данных; команды битового процессора; команды ветвления и передачи управления.

Команды арифметических операций осуществляют арифметические операции (сложение, вычитание, умножение и деление) над содержимым аккумулятора и операндом указанным в команде. Все они, за исключением команд INC и DEC, которые могут выполняться не только над аккумулятором но и над операндом назначения, модифицируют флаги в регистре PSW (флаги переноса С, вспомогательного переноса АС, переполнения OV и паритета Р).

Команды логических операций позволяют осуществить операции логического умножения и сложения байтов, операцию «исключающее ИЛИ», а также циклический сдвиг, сброс и инверсию аккумулятора. Команды не модифицируют флаги в регистре PSW, за исключением команд RRC и RLC, в которых операция циклического сдвига осуществляется с участием флага переноса С.

Команды передачи данных осуществляют пересылку в операнд назначения байта из операнда-источника или указанной в команде константы. Все команды данной группы не модифицируют флаги в слове состояния программы (регистре PSW), за исключением команд загрузки констант в аккумулятор и регистр PSW. Команда MOV DPTR, хххх является единственной командой, которая одновременно загружает в регистр 16 бит данных.

Отличительной особенностью команд операций с битами является то, что они оперируют с однобитовыми операндами. В качестве таких операндов могут выступать отдельные биты некоторых регистров специальных функций, допускающих адресацию отдельных бит, а также 128 программных флагов пользователя в резидентной памяти данных. Косвенная адресация отдельных бит, как это делается при операциях с байтами, невозможна.

К группе команд передачи управления относятся команды, обеспечивающие условные и безусловные переходы, вызовы подпрограмм и возврат из них. Существует несколько команд безусловных переходов: LJMP (длинный переход), АJMP (абсолютный переход), SJMP (короткий переход) и JMP @A+DPTR (косвенный относительный переход). Команды условных переходов дают возможность реализовать ветвление по следующим условиям: аккумулятор содержит нуль (JZ), содержимое аккумулятора не равно нулю (JNZ), перенос равен единице (JC), перенос равен нулю (JNC), адресуемый бит равен единице (JB), адресуемый бит равен нулю (JNB). Для организации программных циклов удобно пользоваться командой DJNZ, осуществляющей декремент аккумулятора с проверкой его содержимого на нуль. Команда CJNE эффективно используется для ожидания какого-либо события. Все команды данной группы, за исключением CJNE и JBC, не оказывают воздействия на флаги. Команда CJNE устанавливает флаг С, если первый операнд оказывается меньше второго. Команда JBC сбрасывает флаг С в случае перехода.

  1. Файли, що входять до складу проекту програмного забезпечення мікропроцесорних управляючих систем мовою си.

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

Исходный текст подавляющего большинства программ должен включать файл заголовка для типа микроконтроллера, используемого в разработке. В каждом таком файле определены аппаратные ресурсы микроконтроллера и даны их аббревиатуры, помогающие разработчику сделать программу более читабельной и наглядной. Многие программы используют стандартные аппаратные ресурсы, общие для всех типов микроконтроллеров одного семейства, например, для MCS-51 порты P1 – P3, регистры TCON, TMOD и т.д. В этих случаях можно использовать стандартные файлы заголовков. При работе в текстовом редакторе среды Keil uVision3 по нажатии правой кнопки мыши можно вставить файл заголовка в исходный текст программы. Например, файл REG51.H содержит аббревиатуры аппаратных ресурсов микроконтроллера 8051, которые делают исходный текст программы более понятным. Теоретически можно обойтись и без таких заголовочных файлов, но тогда придется либо работать непосредственно с шестнадцатеричными адресами аппаратных ресурсов, что очень неудобно и нечитабельно, либо определять эти ресурсы как константы при помощи директивы define.

Сложный проект для более лёгкого понимания разбивают на ряд этапов – подпрограмм. Рекомендуемый размер каждого файла описывающего отдельную подпрограмму 2-3 страницы. Каждый такой файл дополняется соответствующим заголовочным файлом, описывающим правила обращения к созданной подпрограмме, и именно эти заголовочные файлы подключаются к основной программе.

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