Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Микропроцессоры.doc
Скачиваний:
3
Добавлен:
01.05.2025
Размер:
4.83 Mб
Скачать

Практическая работа № 1

Линейное программирование математических операций.

Задание.

1. Принять из ОЗУ два числа, хранящихся в соседних ячейках с адресами 027516

и 027716 и, вычислив их сумму, поместить в ОЗУ на место второго из суммиру-

емых чисел.

2. Заполнить таблицу с программой рассматриваемой задачи, представив ко-

манды кодовыми комбинациями; определить число циклов, тактов и время, не-

обходимые для выполнения программы, приняв период такта равным 0,5 мкс.

Адрес

команды

В ОП

Команда

Пояснения

Кодовая

комбинация

Число

байтов

Число

тактов

0050

Блок 1 (BC) ← 0276

0051

0052

0053

Блок 2 А ← [(ВС)]

0054

Блок 3 BС ← (ВС) + 1

0055

Блок 4 D ← (A)

0056

Блок 5 A ← [(ВС)]

0057

Блок 6 A ← (A) + (D)

0058

Блок 7 [(ВС)] ← (A)

20

Линейное программирование математических операций.

Программа и данные хранятся в ОП. Программу решаемой задачи размещаем в ячейках ОП с номерами 0050 и 0056 (программы других задач будем размещать в ЯП с другими номерами). При отсутствии условных и безусловных переходов (последо-вательные программы) команды размещаются в ячейках памяти с последовательно нарастающими адресами. Операнды хранятся в ячейках ОП с номерами 0276 и 0277. Указав в команде адрес ячейки памяти, получим доступ к её содержимому. Если адрес шестнадцатиразрядный, то он записывается в байтах В3 и В2, где В3. Пусть адрес ЯП [ЯП]16 → [0276]16, тогда 010 = 00002; 2 = 0010; 7= 0111; 6 = 0110 и окончательно:

[0276]16 = [0000 0010 0111 0110]2 ; [0277]16 = [0000 0010 0111 0111]2

Блок № 1. В пару регистров ВС (пара регистров ВС обозначается по первому из них, т. е. как В – 000) непосредственно загружается число 027616, являющееся адресом первого операнда. Структура трёхбайтовой команды пересылки 00 000 001 В3 В2, (см. систему команд), где два старших разряда 00 означают непосредственную загрузку пары регистров; 6, 5, 4 разряды – наименование регистра ВС; младшие разряды 001 – указаны в структуре кода команды. Мнемоническое обозначение команды: LXI ri. Команда трёхбайтовая, выполняется за три цикла и десять тактов.

Блок № 2 В аккумулятор принимается содержимое ячейки ОЗУ (первое слово), адре-сом которой является содержимое пары регистров ВС; эта операция выполняется командой запоминание/загрузка А←[(ВС)], мнемоническое её обозначение LDAX B, обозначение 00 К1 010, где К1 = 001. LDAX B → 00 001 010. Команда однобайтовая, выполняется за 7 тактов.

Блок № 3. В паре регистров ВС формируется адрес второго числа; эта операция выполняется командой приращения пары регистров, мнемоника команды INХ ri обозначение 00 000 011. Команда однобайтовая, выполняется за 5/10 тактов.

Блок № 4. В регистр D принимается содержимое аккумулятора; эта операция выполняется командой пересылки регистр-регистр ri←(rj) или D← (А), мнемоническое обозначение МОV ri rj; обозначение 01 010 111. Команда однобайтовая, выполняется за 5/7 тактов.

Блок № 5. В регистр А (аккумулятор) принимается содержимое ячейки ОЗУ (второе слово), адресом которой является содержимое пары регистров ВС; эта операция выполняется командой запоминание/загрузка D ←[(ВС)], мнемоническое её обозначение LDAX B, обозначение 00 К1 010, где К1 = 001. LDAX B → 00 001 010.

Команда однобайтовая, выполняется за 7 тактов.

Блок № 6. Вычисляется сумма содержимого аккумулятора и содержимого регистра D. Операция выполняется командой суммирования ADD ri, обозначение 10 000 010.

Команда однобайтовая, выполняется за 4/7 тактов.

Блок № 7. Полученная в аккумуляторе сумма пересылается в ячейку памяти, адрес которой находится в паре регистров ВС по команде запоминание /загрузка; мнемони-ческое обозначение команды STAX B, обозначение 00 000 010. Команда однобай-товая, выполняется за 7 тактов.

Общее число тактов для выполнения приведённых пяти команд равно: 10 + 7 + 5/10 + 5/7 + 7 + 4/7 + 7 = 45/55. При длительности тактового периода 0,5 мкс общее время их исполнения составит 22,5/27,5 мкс.

21