- •1. Понятие алгоритма: рекурсивные функции, системы текстовых замен.
- •2.Системы счисления, переводы чисел из одной позиционной системы в другую.
- •3/4.Понятие подпрограммы, функции, возвращающей/не возвращающей значение в
- •5.Передача параметров в подпрограмму,параметры входные и выходные,параметры,передаваемые по значению и по адресу.
- •6.Использование подпрограмм, параметры формальные, локальные, глобальные, обращения к подпрограммам, фактические параметры.
- •8.Статические и динамические переменные,динамическая память,работа с динамическими переменными.
- •9.Понятие линейного связного списка, типы списков, представление стека с помощью массива, пример использования стека.
- •10.Использование динамич. Переменных для представл. И работы со стеком.
- •11.Очередь,реализация очереди массивом.
- •12.Очередь, представление и реализация основных операций с помощью динамических переменных.
- •13.Реализация основных операций со списком:добавление, удаление, поиск.
- •14.Деревья,основные операции над деревьями, представление дерева массивом.
- •15.Двусвязные линейные списки, построение и обход бинарного дерева.
- •16.Операции поиска и удаления в бинарном дереве.
- •17.Понятие графа, представление графа в эвм.
- •18.Представление графа списком инцидентности,алгоритм обхода графа в глубину.
- •19.Представление графа списком списков,алгоритм обхода графа в ширину.
- •20.Технологии программирования,концепции,заложенные в ооп.
- •21.Основные понятия ооп:абстракция, инкапсуляция,полиморфизм.
- •22.Понятие объекта,его состояние и поведение,классы,определение класса и объявление класса.
- •23.Статистические,дружественные и виртуальные поля и методы,особенности их использования.
- •24.Абстрактные классы,их назначение и использование.
- •25.Понятие области видимости:общие,личные,защищенные и опубликованные поля и методы объекта.
- •26.Указатель This и перегрузка методов.
- •27.Использование классов,различные способы инициализации.
- •28.Использование классов,работа с массивами и указателями на объекты.
- •29.Наследование,пример использования наследования.
- •30.Конструкторы и деструкторы, их значение и использование.
- •31.Архитектура пк, основные функциональные устройства и их значения.
- •32.Мп с точки зрения программиста,регистры общего назначения.
- •33.Оперативная память,понятие исполняемого и физического адреса,сегментные регистры.
- •34.Регистр флажков, его назначение и использование.
- •35.Форматы данных и форматы команд.
- •36.Адресация операндов,способы адресации,примеры команд с различными способами адресации.
- •37.Структура программы на Ассемблере.Стандартные директивы сегментации.
- •38.Формат команды и директивы на Ассемблере.Примеры команд и директив.
- •39.Алфавит,слова,константы,переменные и выражения в Ассемблере.
- •40.Директивы определения данных и памяти.
- •41.Команды прерывания, команды работы со стеком.
39.Алфавит,слова,константы,переменные и выражения в Ассемблере.
Алфавит состоит из латинских букв,цифр и символов. Строчные и прописные не различаются. Цифра не может быть на первом месте имени.
В программе на Ассемблере используются константы:
-целые двоичные - последовательности 0 и 1 со следующим за ними символом “b”: 1010101b.
-целые десятичные - обычные 10-ые числа м.б с буквой “d”: 128 или 78d
-целые 16-ые : должны начинаться с цифры и заканчиваться ‘h’ если первый символ A,B,C,D,E,F, то перед ним надо поставить 0.
-действительные с плавающей точкой(мантисса и порядок):34.567e+02
-символьные - последовательности символов заключенные в апострофы или “”
Именованные константы - директива EQU: M EQU 27
Определение переменных V1 DB(байт); V2 DW(слово) или V3=100
Выражения состоят из операндов, операторов и ( ).
Операторы: 1)арифметические + - * / mod 2) логические or not and xor
3)операции отношений : LT(<) LE(<=) EQ(=) NE(!=) GT(>) GE(>=)
4)операции сдвига: влево-SHL, вправо-SHP. 5)специальные: offset<имя>- смещение операнда относительно начала, а операнд PTR-определяет тип операнда метка или переменная.
40.Директивы определения данных и памяти.
Общий вид директивы определения:[<имя>]DX<операнды><;коменты>,
Где X - это B,W,D,F,Q или Т
В поле операндов м.б. ‘?’, 1 или несколько констант, разделенных запятой.
Имя определяет адрес 1-ого байта выделенной области. Директива выделяет указанное кол-во байт и указанные операнды пересылаются в эти поля памяти.
Если Операнд ‘?’ то в поле ничего не заносится.
Примеры: 1)если операнд - символическое имя JM1, которое соответствует смещению в сегменте O3AC1H, то после выполнения M DP JM1 будет выделено 4 байта памяти. Адрес М-значение O3AC1H
2) если надо выделить 100 баайт памяти и заполнить D DB 100 DUP(1)
3) определение 1-мерного массива слов и адрес 1-ого элемента массива- имя MAS и значение его 1: MAS DW 1,7,35,75,84
4)определение 2-ух мерного массива: Arr DB 7,94,11,5 DB 5,0,1,2 DB 5,0,15,12
В директиве определения байта(слова) максимально допустимо 255.
41.Команды прерывания, команды работы со стеком.
int - с помощью команды прерывания происходит приостановка работы процессора - управление передается DOS или BIOS в зависимости от операнда этой команды и содержимого некоторых регистров, строго определенных для каждой функции. После выполнения обрабатывающей программы управление передается команде, следующей за int.
Пример:(вывод символа '!')
MOV AH,6 ; в регистр AH пересылается номер функции(в данном случае 6 )
MOV DL, '!'; в регистр DL пересылается нужный символ
int 21h; обращение к обработчику функции операционной системы(вызов DOS) Регистры стека - SS и SP(ESP)
SS - определяет адрес начала сегмента стека(этот адрес определяется системой самостоятельно)
SP - указатель на вершину стека, его значение уменьшается при добавлении элементов
PUSH <операнд> - положить на вершину стека. Операндом может служить переменная или регистр(тогда на вершину поступит значение регистра)
POP <операнд> - удалить вершину стека(операнды как в PUSH)
Можно обратиться к произвольному элементу стека, не удаляя предварительно все элементы "выше" нужного. Для этого нужно указатель на вершину стека записать в вспомогательный регистр.
MOV BP,SP; (SP)->BP (BP указывает на вершину стека)
MOV AX, [BP+6]; (SS:(BP+6))->AX(адресация по базе - мы берем элемент 6-й от вершины)