- •Понятие алгоритма: рекурсивные функции, системы текстовых замен.
- •Системы счисления, переводы чисел из одной позиционной системы в другую.
- •Передача параметров в подпрограмму, параметры входные и выходные, параметры, передаваемые по значению и по адресу.
- •Использование подпрограмм, параметры формальные, локальные, глобальные, обращения к подпрограммам, фактические параметры.
- •Статические и динамические переменные, динамическая память, работа с динамическими переменными.
- •Понятие линейного связного списка, типы списков, представление стека с помощью массива, пример использования стека.
- •Использование динамических переменных для представления и работы со стеком.
- •Очередь, реализация очереди массивом.
- •Очередь, представление и реализация основных операций с помощью динамических переменных.
- •Реализация основных операций со списком: добавление, удаление, поиск.
- •Деревья, основные операции над деревьями, представление дерева массивом.
- •Двусвязные линейные списки, построение и обход бинарного дерева.
- •Операции поиска и удаления в бинарном дереве.
- •Понятие графа, представление графа на эвм.
- •Представление графа списком инцидентности, алгоритм обхода графа в глубину.
- •Представление графа списком списков, алгоритм обхода графа в ширину.
- •Технологии программирования, концепции, заложенные в ооп.
- •Основные понятия ооп: абстракция, инкапсуляция, полиморфизм.
- •Понятие объекта, его состояние и поведение, классы, определение класса и объявление класса.
- •Статические, дружественные и виртуальные поля и методы, особенности их использования.
- •Абстрактные классы, их назначение и использование.
- •Понятие области видимости: общие, личные, защищённые и опубликованные поля и методы объекта.
- •Указатель this и перегрузка методов.
- •Использование классов, различные способы инициализации.
- •Использование классов, работа с массивами и указателями на обьекты.
- •Наследование, пример использования наследования.
- •Конструкторы и деструкторы, их назначение и использование.
- •Архитектура пк, основные функциональные устройства и их назначение.
- •Мп с точки зрения программиста, регистры общего назначения.
- •Оперативная память, понятие исполняемого и физического адреса, сегментные регистры.
- •Регистр флажков, его назначение и использование.
- •Форматы данных и форматы команд, машинный формат двухадресной машины.
- •Адресация операндов, способы адресации, примеры команд с различными способами адресации.
- •Понятие команды и директивы в Ассемблере, формат команды и директивы.
- •Структура программы на Ассемблере с использованием стандартных директив сегментации.
- •Основные элементы языка Ассемблер: имена, константы, переменные, выражения.
- •Директивы определения данных и памяти, примеры.
- •Команда прерывания, команды работы со стеком.
- •Упрощённые директивы сегментирования, структура программы с использованием точечных директив, пример программы.
- •Этапы выполнения Ассемблерной программы на эвм, понятие com-файла.
- •Различие между exe - и com – файлами, требования, предъявляемые к исходному модулю, предназначенному для создания com – файла, примеры программ.
- •Понятие структурного программирования, этап проектирования – композиция и декомпозиция, понятие статической и динамической структуры программы, спецификация программы.
- •Понятие частичной и полной корректности программы, правила вывода – общий вид, правила консеквенции.
- •Правила вывода для операторов: пустого, присваивания, составного.
- •Правила вывода для операторов ветвления.
- •Правила вывода циклов с предусловием и посусловием.
Адресация операндов, способы адресации, примеры команд с различными способами адресации.
Команда - цифровой двоичный код состоящий из 2 последовательностей 0 и 1. Одна из них определяет код операции, а вторая адреса операндов участвующих в операции и место расположения результатов.
Процессор может работать с безадресными командами(1,2,3-адр-ми)
Одноадресные могут работать с операндами, размещенных в регистрах или памяти. Формат 2-х адресных команд м.б различен.
Адрес состоит из 3 частей:<база>,<индекс>,<смещение>.
Способы адресации: непосредственная, прямая, регистровая, косвенно-регистровая, адресация по базе, прямая с индексированием, по базе с индексированием.
1)регистровая: MOV AX,BX;(BX)->AX
Машинный формат 1001001111000011; код операции:100100;d=1;w=1;mod=11;reg=000;r/m=011.
2)непосредственная: MOV AX,25; (25)->AX
CONST EQU 34H; именованная константа cosnt.
MOV AX,CONST; (34H)->AX.
3)прямая: если известен адрес памяти, начиная с которого размещается операнд, то в команде можно его указать: MOV AX,ES:0001
ES- регистр сегмента данных, 0001-смещение внутри сегмента.
Содержание 2-х байт, начиная с адреса (ES)+0001 пересылаются в АХ- ((ES)+0001)->AX
Также м.б записана с помощью символического имени; которое поставлено в соответствие некоторому адресу памяти: DB-байт, DW- слово, DD- двойное слово. Если в сегменте ES содержится директива Var_p, то по команде:
MOV AX,ES: Var_p; ((ES)+Var_p)->AX
MOV AX, Var_p; ((DW)+Var_p)->AX
4)Косвенно-регистровая: в регистре содержится адрес области памяти в которой операнд содержится: MOV AX,[SJ];
Могут использоваться: SI,DI,BX,BP,EAX,EBX,ECX,EDX,EBP,ESI,EDI.
Не могут:AX,CX,DX,SP,ESP.
5)на базе со смещением: MOV AX,[BX]+2; ((DS)+(BX)+2)->AX
MOV AX,[BP+4]; ((SS)+(BP)+4)->AX
6)прямая с индексированием: MOV,AX,MAS[SI];
((DS)+(SI)+MAS)->AX
MAS- адрес в области памяти для работы с массивами.
7)по базе с индексированием: MOV AX, Arr[BX][DJ];
((DS)+(BX)+(DJ)+Arr)->AX
Особенности:1)данные в памяти перевернутые.
2)размер передаваемых данных определяется типом операндов.
3)типы должны соответствовать.
Понятие команды и директивы в Ассемблере, формат команды и директивы.
Ассемблер-язык программирования низкого уровня=> Программа на нем должна пройти 3 этапа обработки.
Команда состоит из 4-х полей:
[<имя>[:]]<код операции>[<операнды>][;комментарии]
В []-необязательные поля, имя- символическое имя ассемблера, используется в качестве метки для обращения к этой команде, передачи управления на данную команду.
[:]- метка является внутренней.
Код операции определяет какое действие должен выполнить процессор.
Поле <операнды> содержит адреса данных или данные, участвующие в операции и местоположение результатов, через “,”
JMP M1: команда безусловной передачи на команду с меткой М1
M1: MOV AX,BX; пересылка содержимого регистра BX в регистр AX.
Директива: [<имя>]<код псевдо операции><операнды>[;комменты]
Код псевдооперации определяет назначение директивы.
Операндов мб различное кол-во и для одной директивы.
M1 DB 1,0,1,0,1; директива DB определяет 5 байтов в памяти и заполняет их 0 или 1, причем адрес первого байта М1.
M2 Dv ?,?,?; 3 байта ничем не заполнены, адрес первого М2.
Proc; директива начала процедуры
Endp; директива конца процедуры
Segment; директива начала сегмента
Ends директива конца сегмента.