
- •Оглавление
- •Общие сведения о микропроцессоре кр580вм80/кр580вм80а (мп кр580) Цели и задачи практикума
- •Вводная информация
- •Структура мп кр580
- •Блок регистров.
- •Арифметическо-логическое устройство.
- •Структура памяти и форматы команд мп кр580
- •Справочная информация по микропроцессору мп кр580
- •Система команд кр580.
- •Коды команд мп кр580.
- •Лабораторная работа №1.Ознакомление с работой мп кр580 и работой эмулятора emКр580
- •1.1.Руководство пользования эмулятором emКр580
- •1.1.1.Текстовый редактор.
- •1.1.2.Синтаксис редактора.
- •1.1.3.Эмулятор программы.
- •1.2.Задания для самоподготовки
- •1.3.Задания к лабораторной работе
- •1.4.Содержание отчета
- •1.5.Контрольные вопросы
- •Лабораторная работа №2.Исследование системы команд мп кр580
- •2.1.Краткие сведения из теории
- •2.1.1.Способы адресации памяти.
- •2.1.2.Система команд микропроцессора.
- •2.1.2.1Команды пересылки данных.
- •2.1.2.2Арифметические и логические команды.
- •2.1.2.3Команды передачи управления.
- •2.1.2.4Специальные команды.
- •2.2.Задания для самоподготовки
- •2.3.Задания к лабораторной работе
- •2.4.Содержание отчета
- •2.5.Контрольные вопросы
- •Лабораторная работа №3.Подпрограммы и стек
- •3.1.Краткие сведения из теории
- •3.2.Задания для самоподготовки
- •3.3.Задания к лабораторной работе
- •3.4.Содержание отчета
- •3.5.Контрольные вопросы
- •Лабораторная работа №4.Ввод/вывод, маскирование данных и организация условных переходов
- •4.1.Краткие сведения из теории
- •4.1.1.Общие сведения об организации интерфейса ввода/вывода.
- •4.1.2.Маскирование данных.
- •4.1.3.Организация условных переходов.
- •4.2.Задания для самоподготовки
- •4.3.Задания к лабораторной работе
- •4.4.Содержание отчета
- •4.5.Контрольные вопросы
- •Лабораторная работа №5.Выполнение арифметических операций
- •5.1.Краткие сведения из теории
- •5.1.1.Сложение и вычитание.
- •5.1.2.Умножение чисел.
- •5.1.3.Деление чисел.
- •5.1.4.Вычисление специальных функций.
- •5.2.Задания для самоподготовки
- •5.3.Задания к лабораторной работе
- •5.4.Содержание отчета
- •5.5.Контрольные вопросы
- •Литература
5.1.4.Вычисление специальных функций.
Для вычисления
специальных функций (
,
,
,
,
,
)
применяются специальные алгоритмы.
Функции
,
,
можно вычислить, воспользовавшись их
разложением в ряд [6] (см. Табл. 5 .6).
Число членов ряда определяется исходя из условия получения требуемой точности.
Для вычисления функции с точностью до целых чисел можно применить алгоритм, основанный на том, что квадрат числа можно определить сложением последовательности нечетных чисел (см. Табл. 5 .7).
Из приведенного примера видно, что какое число необходимо возвести в квадрат, такое количество последовательных нечетных чисел, начиная с 1, и необходимо сложить.
Вычисление специальных функций по приведенным выражениям занимает длительное время и обеспечивает низкую точность. Это обусловлено небольшой длиной машинного слова и ограниченным быстродействием МП. Поэтому, в тех случаях, когда ставятся жесткие условия по быстродействию и точности, применяется вычисление функций с помощью таблиц. Программа Прогр. 5 .11 (см. ниже) иллюстрирует это.
Программа Прогр. 5 .11 определяет квадрат чисел от 0 до 10 включительно. Входной параметр программы – число x. Оно записывается в регистр L. Выходной параметр – значение x в регистре Н.
Табл. 5.6. Примеры разложения некоторых элементарных функций в степенной ряд (ряд Тейлора).
|
|
|
|
|
|
Табл. 5.7. К вычислению квадратного корня с точностью до целых чисел.
Число |
Сумма нечетных чисел |
Результат |
1 |
1 |
= 1 |
2 |
1 + 3 |
= 4 |
3 |
1 + 3 + 5 |
= 9 |
4 |
1 + 3 + 5 + 7 |
= 16 |
5 |
1 + 3 + 5 + 7 + 9 |
= 25 |
Прогр. 5.11. Программа для определения квадрата чисел от 0 до 10 включительно.
LAB_1 : |
MVI H, 00h |
;Очистить регистр Н. |
|
|
LXI D, 0100h |
;Загрузить начальный адрес таблицы. |
|
|
DAD D |
;Получить адрес элемента. |
|
|
MOV H, M |
;Загрузить его в регистр Н. |
|
|
JMP LAB_1 |
;Безусловный переход для организации вечного цикла. |
|
|
HLT |
;Выход из программы. |
|
|
|
||
;Таблица квадратов целых чисел: |
|
||
; 0100 00h |
|
||
; 0101 01h |
|
||
; 0102 04h |
|
||
; 0103 09h |
|
||
; 0104 10h |
|
||
; 0105 19h |
|
||
; 0106 24h |
|
||
; 0107 31h |
|
||
; 0108 40h |
|
||
; 0109 51h |
|
||
; 010A 64h |
|