Алгоритмы возведения в квадрат и произведения

В первой части статьи я привёл программу на ассемблере которая вычисляет значение функции y=7(a-b)^2 теперь посмотрим алгоритм программы и её блок-схему чтобы детально разобраться что и как. Вот алгоритм работы:
Шаг 1. Ввести код числа а.
Шаг 2. Ввести код числа b.

Шаг 3. Вычислить значение у=а-b.
Шаг 4. Если у≥0 то шаг 6, иначе шаг 5.
Шаг 5. Преобразовать у в прямой код.
Шаг 6. Запись у в регистр ra.
Шаг 7. Запись у в регистр rb.
Шаг 8. Обнулить регистр rc.
Шаг 9. Обнулить бит переноса.
Шаг 10. Сдвиг rb вправо на 1 бит.
Шаг 11. Проверка бита переноса С. Если С=0, то переход к шагу 14, иначе шаг 12.
Шаг 12. Сложить содержимое rc с ra.
Шаг 13. Проверка переполнения. Если да то переход к шагу 22, иначе шаг 14.
Шаг 14. Сдвиг содержимого ra на 1 бит влево.
Шаг 15. Проверка переполнения. Если да то переход к шагу 22, иначе шаг 16.
Шаг 16. Проверка содержимого rb. Если не равно 0 переход к шагу 9, иначе шаг 17.
Шаг 17. Запись содержимого rc в ra.
Шаг 18. Сдвиг содержимого ra на 3 разряда влево.
Шаг 19. Проверка переполнения. Если да то переход к шагу 22, иначе шаг 20.
Шаг 20. Вычислить разность регистров rа и rс.
Шаг 21. Проверка переполнения. Если нет то переход к шагу 23, иначе шаг 22.
Шаг 22. Установка флага ошибки err=1. Переход на шаг 24.
Шаг 23. Вывод результата.
А вот блок-схема алгоритма:



Комментариев нет:

Отправить комментарий