Курсовая работа: Микропроцессор i8086/i8088
7. Иначе перейти к предыдущему элементу массива и продолжить с пункта 3
Графическое представление алгоритма в виде блок-схемы:
2.5. Подсчет в массиве байтов с четным количеством бит
Подсчёт количества байтов с чётным количеством бит реализовать достаточно просто:
Обнулить результат
Установить указатель на первый элемент массива
Проверить на чётность очередной элемент массива
Если чётный, добавить к результату 1
Если все элементы массива обработаны, закончить
Иначе перейти к предыдущему элементу массива и продолжить с пункта 3
Графическое представление алгоритма в виде блок-схемы:
2.6. Проверка элементов массива на чётность
Для проверки отдельных байтов массива на чётность удобно использовать команду test, которая вычисляет результат действия побитового логического «И» над приёмником и источником и устанавливает флаги SF, ZF и PF в соответствии с результатом, при этом результат не сохраняется. Если после выполнения команды test флаг PF будет установлен в 1, количество бит в байте чётно.
1. Вывод на экран текстовых сообщений
Наиболее простое решение – использовать для вывода текста функцию 9hDOS (прерывание INT21h), которая получает адрес строки для вывода через регистр dx, причем строка должна завершаться символом $.
2. Преобразование числа к строковому виду
В качестве основы используем реализацию алгоритма преобразования числа
в десятичное представление. [4, 201]
Суть используемого алгоритма заключается в выполнении следующих действий:
Разделить исходное число на 10.
Добавить к остатку ASCII-код нуля.
Записать полученную цифру в стек.
Увеличить счётчик цифр.
Если ещё есть что делить, продолжить с п.1
По количеству цифр: извлечь цифру из стека и дописать в конец результирующей строки.
Дописать в конец результирующей строки символ $.
Базовый алгоритм рассчитан на работу с 16-разрядными числами. Так как в разрабатываемой программе код чётности будет представлен в виде 32-разрядного числа, модифицируем исходный алгоритм для работы с двойными словами. Такая модификация выполняется достаточно просто заменой в исходном коде наименований регистров: ax на eax, bx на ebx, dx на edx.
3. Ввод числовых данных
С учётом того, что разрабатываемая программа является тестовой и не требует специфического управления клавиатурой, ввод с клавиатуры запрограммируем с помощью функций DOS.
Соответственно, алгоритм ввода числа в виде текстового описания будет выглядеть следующим образом:
Подготовить буфер ввода данных