- •!Производительность вс
- •Методы и средства повышения надежности эвм
- •Регистр флагов
- •Способы адресации
- •Команды пересылки данных, синтаксис команд.
- •Команды двоичной арифметики, синтаксис команд.
- •Команды логических операций, синтаксис команд.
- •Псевдокоманды
- •Общий вид строк программ на языке ассемблера.
- •Метка: назначение, синтаксис, правила именования, директива метки, вызов метки
- •Организация сегментов: сегменты и их значения, порядок следования и синтаксис
- •Оператор, операнд. Операторы адресации
- •Другие операторы(дополнительные) и их описание
- •Макроопределение
- •Прерывание dos
- •Символьный ввод/вывод, функции.
- •Прерывание и функции работы с мышью
- •Прерывание и функции системного таймера
- •Команды передачи управления
- •Команды безусловного перехода: синтаксис и область использования
- •Команды условного перехода: мнемоника и таблица условных переходов, операнд команд
- •Комментарии в программе
- •Модульное программирование
- •Концепция модульного программирования
- •Модуль, спецификация модуля
- •Разновидность модулей
- •Характеристики модуля:
- •Машинный код, языки программирования низкого уровня, язык ассемблера, ассемблер
- •Debug: ассемблирование и дизассемблирование
- •Строка в ассемблере, исполняемый файл. Трансляция программ
- •Программы ассемблера для компьютеров с процессором Intel.Типы программ на языке ассемблера
- •Средства dos вывода на экран в текстовом режиме
- •Способы моделирования (определения) в массиве
- •Клавиатурные функции dos и bios
- •Двухмерные массивы, вычисления адреса элемента
- •Машинная команда, части машиной команды
- •Директивы процессора (препроцессора)
- •Идентификаторы объектов программы, правила записи идентификаторов
- •Структура программы на языке ассемблера и ее описание
- •Организация цикла с помощью loop
- •Инкремент и декремент
- •Раздельная трансляция: назначение, варианты компоновки
- •!Высказывания, виды высказываний. Логические переменные и функции
- •Логические операции. Таблицы истинности логических операций
- •Заголовок модуля. Имена и идентификаторы в модуле
- •Структуры (тип данных) и объединения
Комментарии в программе
Комментарии отделяются от исполняемой строки символом ; . При этом все, что записано после символа точка с запятой и до конца строки, является комментарием. Использование комментариев в программе улучшает ее ясность, особенно там, где назначение набора команд непонятно. Комментарий может содержать любые печатные символы, включая пробел. Комментарий может занимать всю строку или следовать за командой на той же строке.
Модульное программирование
Модульное программирование- способ программирования, когда программа разбивается а группу компонентов каждый из которых имеет свой контролируемый размер, четкое назначение и детально проработанный интерфейс с внешней средой.
Модульный подход в программировании позволяет, как упростить разработку задачи, так и произвести её модернизацию в процессе эксплуатации. Кроме того, модульный подход при разработке сложных программ создаёт идеальные условия для совместной работы коллектива авторов.
Концепция модульного программирования
Принцип утаивания информации Парнаса. Внешней среде не имеет значения что и как работает внутри модуля.
Аксиома модульности Коуэна. Модуль должен удовлетворять следующим условиям:
блочность организации
синтаксическая обособленность
семантическая независимость
общность данных
полнота определения
Сборочное программирование Цейтина. Модули — это программные кирпичи, из которых строится программа. Существуют три основные предпосылки к модульному программированию:
стремление к выделению независимой единицы программного знания.
потребность организационного расчленения крупных разработок;
возможность параллельного исполнения модулей.
Модуль, спецификация модуля
Несколько определений модуля.
Модуль — это совокупность команд, к которым можно обратиться по имени.
Модуль — это совокупность операторов программы, имеющая граничные элементы и идентификатор (возможно агрегатный).
Функциональная спецификация модуля должна включать:
синтаксическую спецификацию его входов, которая должна позволять построить на используемом языке программирования синтаксически правильное обращение к нему;
описание семантики функций, выполняемых модулем по каждому из его входов.
Разновидность модулей
Существуют три основные разновидности модулей:
1) Функциональные модули - реализуют одну какую-либо функцию.
2) Информационные модули - реализующие несколько операций над одной и той же структурой данных
3) Логические модули – объединяют два предыдущих.
Характеристики модуля:
1) размера модуля;
В модуле должно быть 7 (+/-2) чанков.
Чанк — наборы фактов и связей между ними, запоминаемые и извлекаемые как единое целое.
2) прочность модуля;
Прочность - мера независимости его частей; чем выше - тем лучше.
Типы прочности (связности), приведенные ниже:
Функциональная - реализует одну функцию и не может быть разбит на 2 модуля.
Последовательная - может быть разбит на последовательные части, совместно реализующие единственную функцию.
Информационная – модули работают с одной структурой данных.
3) сцепление модуля с другими модулями;
Сцепление — мера относительной независимости модуля от других модулей.
Типы сцепления:
Независимые модули (нулевое) — каждый модуль автономен.
Сцепление по данным — это сцепление, когда данные передаются модулю, как значения его параметров.
рутинность - это независимость модуля от предыдущих обращений к нему
Модули бывают дополнительные и главные, только в главном модуле выполняется:
Инициализация сегментов стека директив. Stack
Инициализация сегментов данных
Только он имеет метку start – начало программы.
Исходный текст модуля должен иметь заголовок, в котором указывается:
назначение и особенности функционирования модуля;
описание входных данных;
описание выходных данных.
Все имена, описанные в модуле, локализуются в нём.
Каждый модуль может оперировать двумя типами идентификаторов: внутренними и внешними, которые определены или инициализированы в другом модуле.
Extern <имя>:<тип>,…,<имя >:<тип>.
Для переменных: byte, word, dword, … tbyte
Для числовых констант: abs (определяются через директиву присваивания =)
Для меток: near,far
Для процедур: proc
Все внешние переменные (процедуры) для данного модуля, должны быть определены в каком-то другом модуле в качестве общедоступных с помощью директивы
Public <имя>, …,<имя>
