- •Декомпозиция задачи ввода данных в озу
- •Структуры данных
- •Разработка структуры данных программы для ввода данных в озу
- •Алгоритмизация программы
- •Подходы к алгоритмизации
- •Иерархическая организация алгоритма
- •Алгоритмизация программы для ввода данных в озу
- •1. Модуль "Тестовый контроль озу по шд" (dTstContr)
- •2. Модуль "Тестовый контроль озу по ша" (aTstContr)
- •3. Модуль "Вывод сообщений об ошибках" (ErMesOut)
- •4. Модуль "Ввод режимов" (ModeInput)
- •5. Модуль "Вывод сообщения о типе ввода" (InTpMesOut)
- •6. Модуль "Ввод с клавиатуры" (KbdInput)
- •7. Модуль "Контроль ввода с клавиатуры" (KbdInContr)
- •8. Модуль "Преобразование очередной цифры" (NxtDigTrf)
- •9. Модуль "Формирование информации" (InfoForm)
- •10. Модуль "Формирование массивов отображения" (DispForm)
- •11. Модуль "Вывод числовой информации" (NumInfOut)
- •12. Модуль "Функциональная подготовка" (FuncPrep)
- •3.4.4. Кодирование программы
- •Реализация логических конструкций структурного программирования
- •Кодирование программы для ввода данных в озу
- •3.4.5. Тестирование и отладка программы
- •3.4.6. Занесение программы на рабочий носитель
- •3.4.7. Оформление документации на программу
- •3.5. Проектирование аппаратных средств
- •3.5.1. Схемотехническое проектирование процессора
- •3.5.2. Схемотехническое проектирование памяти
- •Банкирование памяти
- •Организация банков памяти
- •Проектирование запоминающих устройств
- •3.5.3. Схемотехническое проектирование интерфейса
- •Организация ввода/вывода данных
- •3.5.4. Тестирование и настройка аппаратных средств
- •Тестирование статическими сигналами
- •Свободный прогон микропроцессора
- •3.6. Комплексная отладка микропроцессорной системы
- •Заключение
- •Список рекомендуемых источников
Алгоритмизация программы
Вычислительный процесс, реализуемый программой, представляет собой последовательность дискретных шагов по преобразованию данных. Точное предписание, определяющее процесс преобразования данных во времени, называется алгоритмом этого преобразования. Для успешного решения задачи алгоритм должен иметь три свойства: массовость, определенность и результативность.
Массовость это способность алгоритма выполнять преобразование при изменении входных данных в заданных пределах. Если в данных могут появляться недопустимые значения, то для обеспечения массовости необходимо выявлять их до выполнения преобразования и формировать результат в случае их обнаружения принудительным образом. Например, пусть необходимо выполнить операцию деления на число, вводимое из порта. Если во входных данных невозможно появление нулевого значения, то никаких мер по обеспечению массовости принимать не надо. Однако, если это возможно, то до выполнения операции деления необходимо анализировать введенное число на нуль и при его обнаружении формировать принудительный результат: "Деление невозможно" или "Результат операции равен 1" и т. д. и т.п., не выполняя операцию деления.
Определенность это точность предписания, не допускающая двусмысленного толкования предписанных действий по преобразованию информации. Если в исходных данных появляются значения, допускающие неоднозначное толкование, то эта неопределенность должна исключаться путем введения дополнительной информации. Например, если при обработке текстовых данных появляется фраза "Это пила Иванова", то для устранения неоднозначности ее толкования необходима дополнительная информация, уточняющая о чем идет речь: о пиле или о питье, об Иванове или об Ивановой.
Результативность это свойство алгоритма, обеспечивающее получение искомого результата за конечное число шагов. Как правило, к нарушению результативности приводят ошибки, вызывающие бесконечное зацикливание.
Для описания алгоритмов могут использоваться различные средства: логические схемы, матричные схемы, графические схемы алгоритмов (ГСА) и т.п. При программировании на ассемблере наибольшее распространение получил язык ГСА, обеспечивающий высокую наглядность.
Любая ГСА может быть изображена с помощью следующих элементов (рис. 3.18):
1) оператор начала; 4) оператор безусловного перехода;
2) оператор конца; 5) оператор условного перехода;
3) оператор действия; 6) оператор комментария.
Операторы "Начало" и "Конец" являются неисполняемыми и обозначают лишь начало и конец алгоритма.
Рис. 3.18. Элементы графических схем алгоритмов:
а) оператор начала; б) оператор конца; в) оператор действия;
г) оператор безусловного перехода; д) оператор условного перехода;
е) оператор комментария
Операторы действия "Выполнить" реализуют отдельные функции по преобразованию информации, а операторы переходов устанавливают связь между ними во времени. При этом описание большей части безусловных переходов опускается, т. к. МП обеспечивает естественный порядок выполнения операторов действия в порядке их записи. Безусловный переход указывается лишь в точках нарушения естественного порядка выполнения операторов программы.
Оператор комментария может присоединяться к любому из операторов ГСА, и в него помещается текст, раскрывающий функции этого оператора.
Таким образом, ГСА отражает логическую структуру алгоритма и устанавливает взаимосвязь между отдельными программными исполнителями во времени.