Motorola 6800 и intel 8080 (пример 8)

Единственное изменение, которое нужно внести в рассмотренные в примере 7 программы для МП Motorola 6800 и Intel 8080, состоит в том, чтобы после команды СЛОЖИТЬ С ПЕРЕНОСОМ вставить команду DAA (ДЕСЯТИЧНАЯ КОРРЕКТИРОВКА АККУМУЛЯТОРА). На рис. 5.34 показано, как работает команда DAA в первых двух проходах цикла. Каждая операция десятичного сложения выполняется с помощью двух команд: команды сложения й идущей непосредственно за ней команды ДЕСЯТИЧНАЯ КОРРЕКТИРОВКА. В МП Motorola 680Q команда ДЕСЯТИЧНАЯ КОРРЕКТИРОВКА используется толь-ко для корректировки содержимого аккумулятора А. В других микропроцессорах эта задача решается несколько иначе.

В микропроцессоре РАСЕ фирмы National имеется команда ДЕСЯТИЧНОЕ СЛОЖЕНИЕ, а в MOS Technology 6502 существует десятичный режим (включаемый командой УСТАНОВИТЬ ДЕСЯТИЧНЫЙ РЕЖИМ), в котором все арифметические операции .выполняются в десятичной системе счисления: Motorola 6800 — пример 8 Десятичное сложение  

Пример 9. Таблица квадратов.

Решение более сложных вычислительных задач часто могут упростить таблицы с готовыми результатами. В такий таблицах в определенном порядку хранятся- все возможные результаты, вычислений. В каждом конкретном случае программа должна уметь выбирать верный результат. При таком способе вычислений^ достигается высокое быстродействие за счет расхода дополнительной памяти: использование таблицы уменьшает бремя расчета,: ^гак как результат не нужно вычисл ять, но требует больших затрат памяти, поскольку в памяти должны быть заранее зафиксированы все возможные результаты. По мере того как стоимость памяти уменьшается, табличное задание функций становится все более целесообразным. Таблицы функций и таблицы перекодировки доступны даже в стандартных ПЗУ.

Для примера рассмотрим программу вычисления квадрата 3-битного числа. Подобная задача, возникает при обработке сигналов, в системах связи и при управлении { производственными процессами. Таблица состоит из всех квадратов 3-битных чисел, расположенных в порядке возрастания. Такую таблицу можно разместить в памяти с помощью ассемблерной псевдооперации DATA следующим образом:

SQTAB DATA 0, 1, 4, 9, 16, 25, 36, 49

Индексом при обращении к такой таблице является число, квадрат которого отыскивается: нулевой элемент содержит квадрат нуля, первый — квадрат единицы и т. д. Чтобы найти адрес нужного элемента таблицы, программа должна прибавить 3-битное число к базовому адресу SQTAB. Пусть исходное число, заключенное между 0 и 7> находится в ячейке 40, а результат следует поместить в ячейку 41.

Типичный пример.

(40) = 04.

Нужно возвести в квадрат число 4. Результат получается равным

(41) = Ю1в = 1610.

Интересующий нас элемент таблицы расположен в ячейке с адресом SQTAB + 4.

Блок-схема программы представлена на рис. 5.35. Чтобы вычислить адрес нужного элемента таблицы, по которому затем можно выбрать элемент, программа должна выполнить операцию сложения.



Самая подробная информация gs mainyng у нас.