
- •2. Обобщенная структура микропроцессорной системы.
- •3. Архитектурные особенности и функциональные возможности 8-разрядных микропроцессоров.
- •4. Архитектурные особенности и функциональные возможности 16-разрядных микропроцессоров.
- •6. Организация устройств ввода/вывода информации в микропроцессорных системах.
- •8. Программное обеспечение микропроцессорных устройств.
- •9. Современные микроконтроллеры. Архитектура, особенности различных типов микроконтроллеров.
- •10. Методы диагностирования микропроцессорных устройств.
8. Программное обеспечение микропроцессорных устройств.
В МПС используется программирование на языке ассемблера. Это язык программирования в мнемокодах команд и программа-транслятор, переводящая (транслирующая) мнемокоды в машинные коды, считываемые микропроцессором из памяти программ, дешифрируемые и выполняемые. Процесс перевода в машинные коды - ассемблирование. Программа на языке ассемблера содержит два типа выражений: команды, транслируемые в машинные коды; директивы, управляющие ходом трансляции. Выражение имеет вид: {(метка)}: (мнемокод) {(операнд)}{,}{(операнд)} {; комментарий}. Метка является символическим адресом команды. Метками обозначаются команды, к которым надо выполнять переход с помощью команд переходов или вызовов подпрограмм. Мнемокод идентифицирует команду ассемблера. Для мнемокодов используют сокращенные или полные английские слова, передающие значения основной функции команды. Операнды отделяются запятыми. Если заданы два операнда, то первый из них - источник, второй - приемник информации. Команда может содержать различное количество операндов разных типов. Комментарии игнорируются в процессе трансляции и используются для документирования программы.
Программа на языке ассемблера называется начальной программой или начальным программным модулем. Ассемблирование выполняет программа-транслятор (TASM.COM). В зависимости от установок, задаваемых пользователем, программа переводит начальный модуль в один из двух программных модулей: командный модуль (файл с расширением СОМ) или объектный модуль (файл с расширением OBJ). Командный модуль содержит машинные коды команд с абсолютными адресами и выполняется МП. Первый оператор командного модуля - директива ORG 100H (начало), которая располагает первую команду программы в сегменте кодов со смещением 100Н. Заканчиваться программа должна командой ret. Последняя строка программы - директива end. Объектный модуль содержит машинные коды команд с относительными адресами, выполняется МП после замены относительных адресов на абсолютные с помощью программы-компоновщика (LINK.EXE, генерирующая модуль с расширением ехе (ЕХЕ - файл или ЕХЕ - программу)). Программа-компоновщик объединяет объектный модуль с библиотечными модулями (объектные файлы, которые содержат наиболее распространенные подпрограммы; размещаются в специальном системном файле).
При ассемблировании программа-транслятор генерирует листинг и файл листинга программы. Листинг - это отображения на дисплее или бумаге текстов начального программного модуля, программного модуля и сообщений, которые указывают на ошибки программирования, связанные с нарушением правил записи выражений. Директивы предназначены для управления процессом ассемблирования и формирования листинга. Язык ассемблера содержит основные директивы: начала и конца сегмента segment и ends; начала и конца процедуры proc и endp; назначения сегментов assume; начала org; распределения и инициирования памяти db, dw, dd; завершения программы end; метки label.
В зависимости от специфики применения МП числа представляются в разных форматах. В простейших применениях управляющих МПС используется способ представления целых чисел без знака в двоичном коде. Диапазон чисел составляет от 0 до (28-1) - в МП могут быть использованы 256 чисел. В МП системах, ориентированных на обработку данных, используется представление чисел со знаком. Старший бит Д7 отводится для знака числа (1-отрицательное, 0-положительное число). Диапазон чисел от –27 до +(27-1). Для двухбайтных чисел знаковый разряд располагается в бите Д7 старшего байта. В применениях МП систем, требующих выполнения операций над десятичными числами, используется двоично-десятичный код, в котором каждый байт условно разбивается на две тетрады, в каждой из которых кодируется десятичное число. Если МП система требует расширенного представления чисел, применяются многобайтные коды. Обработка многобайтных чисел, расположенных в смежных ячейках, осуществляется в МП побайтно, начиная с младшего байта. Если в МПС необходимо выполнять обработку десятичных чисел со знаком, то такие числа представляются в десятичном дополнительном коде. Для представления дробных чисел в МП используется формат с плавающей точкой. Чем в большей степени формат обрабатываемых чисел превышает формат МП (разрядность ШД), тем значительнее снижается быстродействие обработки данных в МП системе.