Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
шпоргалка / мусу / ++++++++++МП+.doc
Скачиваний:
42
Добавлен:
26.01.2019
Размер:
2.47 Mб
Скачать

5. Особенности системы команд языка Ассемблер для разных типов микропроцессоров.

Команда определяет операцию, которую выполняет МП над данными и содержит информацию о том, где будет помещен результат операции, а также об адресе следующей команды. Формат команды - состав, назначение и расположение полей кода команды; содержит операционную (код операции) и адресную части (информация об адресах операндов, результате операции и следующей команде). Длина формата команды определяет скорость ее выполнения и зависит от способа адресации операндов. Существуют следующие способы адресации. Прямая – адрес операнда указан непосредственно в команде. Косвенная – указывается регистр, в котором хранится адрес ячейки памяти, содержащей операнд. Непосредственная – операнд содержится во втором и третьем байтах команды. Регистровая (неявная) - команда указывает на регистр или пару регистров, в которых записаны данные. Стековая - адрес определяется указателем стека. Кроме перечисленных, существуют способы адресации: автоинкрементная (автодекрементная), страничная, индексная, относительная.

Различают группы команд МП: 1. Команды передачи данных. 2. Команды ввода/вывода. 3. Команды обработки информации (арифметические, логические, сдвиг, сравнение, десятичная коррекция). 4. Команды управления порядком выполнения программы (переход, вызов подпрограмм, возврат из подпрограмм, прерывания). 5. Команды задания режимов работы МП.

В течение времени выполнения команды – командного цикла – ЦП выполняет следующие действия: 1. Выставляет адрес команды на ША. 2. Получает код команды из памяти и дешифрует его. 3. Вычисляет адрес операнда и считывает данные. 4. Выполняет операцию, определенную командой. 5. Воспринимает внешние управляющие сигналы, например, запрос прерываний. 6. Генерирует сигналы состояния и управления, необходимые для работы памяти и УВВ.

Процесс выполнения команды в МПC можно разбить на 2 фазы: фаза выборки кода команды, фаза ее исполнения. Фаза выборки кода команды: адрес команды из счетчика команд (СК) выставляется на ША, затем происходит выборка кода команды из ПЗУ и передача его через ШК или ШД в РгК ЦП. После этого производится дешифрация этого кода в ДШК. В соответствии с кодом команды УУ вырабатывает последовательность управляющих сигналов, необходимых для выполнения этой команды. Фаза выполнения команды начинается с подготовки операндов, которая заключается в определении местоположения операндов. Затем ЦП переходит к выполнению операции, заданной кодом команды. В это время в СК формируется адрес следующей команды, и операция повторяется.

Примеры команд, пример программы на языке Ассемблер.

6. Принципы программирования однокристального 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 старшего байта. В применениях МП систем, требующих выполнения операций над десятичными числами, используется двоично-десятичный код, в котором каждый байт условно разбивается на две тетрады, в каждой из которых кодируется десятичное число. Если МП система требует расширенного представления чисел, применяются многобайтные коды. Обработка многобайтных чисел, расположенных в смежных ячейках, осуществляется в МП побайтно, начиная с младшего байта. Если в МПС необходимо выполнять обработку десятичных чисел со знаком, то такие числа представляются в десятичном дополнительном коде. Для представления дробных чисел в МП используется формат с плавающей точкой. Чем в большей степени формат обрабатываемых чисел превышает формат МП (разрядность ШД), тем значительнее снижается быстродействие обработки данных в МП системе.

Программно-доступные регистры (или программную модель). Пример программы.

Соседние файлы в папке мусу