Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МПСслайды / МПС-8-11.ppt
Скачиваний:
55
Добавлен:
23.02.2015
Размер:
1.02 Mб
Скачать

Цели изучения

Более детальное изучение вычислительных возможностей микропроцессоров методом исследования программной реализации различного рода операций.

На начальном этапе предлагается ручное ассемблирование с определением машинных кодов, что позволяет детально изучить:

принцип кодирования команд; форматы команд и данных;

способы адресации данных и команд;

систему команд микропроцессора;

программную модель микропроцессора и МПС;

программные модели интерфейсных БИС и контроллеров устройств.

ЭЛЕМЕНТЫ ПРОГРАММИРОВАНИЯ

В качестве примера оформления в табл. 4.1 приведена программа суммирования содержимого ячейки 8400h и порта 01h с выводом суммы в порт 02h и в ячейке 8401h.

• Поля табл. 4.1: адреса, кода команды, ассемблерного

кода (мнемокода) и комментариев.

Поле метки используется при наличии команд передачи управления и

вданной программе остается пустым.

Поле мнемокода содержит символьное обозначение кода

команды на языке ассемблера.

Поле операнда содержит информацию о регистрах, данных и адресах, объединенных соответствующей операцией.

Поле комментариев не учитывается ассемблером и ограничивается его перепечаткой. Это поле очень важно для понимания процессов и событий в программе.

Программа ассемблер может выдать соответствующий машинный

код, используя только поля мнемокода и операнда.

Программа в машинных и ассемблерных кодах

 

 

 

 

Таблица 4.1

Адрес

Машинный Метка

Мнемокод

Операнд

Комментарий

(h-код)

код (h-код)

 

 

 

8500

21

LXI

H, 8400h

Загрузка указателя адреса,

8501

00

 

 

т.е. 8400h HL

8502

84

 

 

 

8503

DB

IN

01

Ввод числа из порта 01

8504

01

 

 

в аккумулятор

8505

86

ADD

M

Сложение содержимого

 

 

 

 

ячейки М и регистра А,

 

 

 

 

т.е. (А)+(М) (А)

8506

23

INX

H

Увеличить указатель адреса,

 

 

 

 

т.е. (HL)+1 HL

8507

 

MOV

M, A

Заполнить сумму в ячейке

 

 

 

 

8401

8508

D3

OUT

02

Вывод суммы в порт 02,т.е.

8509

02

 

 

(А) 02

850А

76

HLT

 

Останов ЭВМ

Начальный этап программирования МП

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

Каждому байту кода команды и операнду назначить последовательно ячейки памяти.

На начальном этапе изучения микропроцессоров и их программирования рекомендуется эти преобразования выполнять вручную.

Задания

Разработайте программу формирования дополнительного кода,рис.4.1.

Разработайте программы, выполняющие над числами в ячейках 0902 и 0903 следующие операции:

а) сложение; б) вычитание;

в) сложение с предварительным умножением слагаемых на два;

г) вычитание с предварительным делением чисел на два;

д) сложение с получением результата в двоично- десятичном коде.

П р и м е ч а н и е. Результаты вычислений разместите в ячейках памяти.

Микропроцессорные системы. Лекция 11. Программирование микропроцессора.

Схема формирования дополнительного кода

Микропроцессорные системы. Лекция 11. Программирование микропроцессора.

Последовательные и циклические программы

Последовательной называют программу, в которой нет ветвлений.

Например, программа формирования дополнительного кода числа, рис. 4.1.

Для организации циклов в программах (рис.4.2.) в качестве счетчиков используются регистры A, B, C, D, E, H, L, M.

Можно использовать и регистровые пары в качестве счетчиков, но команды INX, DCX не формируют признаков, что несколько затрудняет формирование ветвлений в программах по содержимому регистровых пар.

Операции с массивами данных

Рассмотрим типовую процедуру сбора и формирования в ОЗУ МП-системы массива данных, вводимых из порта ввода IPORT.

Начальный адрес массива данных – BASE, а регистр С используется как счетчик данных. Регистровую пару HL удобно использовать как указатель данных, рис.4.3.

Задания

4.5. Разработайте программу сбора данных и организации в ОЗУ 100 байтного массива.

Введите в программу пункта 4.5 обработку массива:

а) нахождение суммы массива (без учета возможного переполнения);

б) нахождение максимального числа в массиве данных, представленных как

целое без знака.

Программная реализация типовых функций управления

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

Рассмотрим ожидание замыкания контакта К на объекте управления рис. 4.4. Текст

программы WAIT

WAIT:IN 80h; ввод в регистр А из порта 80.

ANI 08h; маскирование всех разрядов кроме D3.

JNZ WAIT;

переход в цикле ожидания, если D3=1.

RET;

возврат в основную программу, если D=0.

Моделирование функций алгебры логики

Моделирование функций алгебры логики (ФАЛ) заданной

полной таблицей истинности, в которой всем набором входных переменных (Х4, Х3, Х2, Х1) ставится в соответствие вектор выходных значений ФАЛ (Y8 , Y7 , Y6 , Y5 , Y4, Y3 , Y2, Y1), см табл 4.2.

Метод программной реализации ФАЛ, заданных полной таблицей истинности:

в память МПС записывается массив векторов выходных значений ФАЛ для всех 2n наборов значений входных переменных (в порядке возрастания номера набора);

считываемое извне значение входных переменных интерпретируется как номер строки в массиве, суммируется с начальным адресом массива и образует адрес строки выходных значений ФАЛ.

Разработайте программу табличного варианта моделирования ФАЛ, заданных в табл. 4.2. Входные переменные введите из порта 80h или ячейки памяти 8700h.

Соседние файлы в папке МПСслайды