- •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.Команды прерывания, команды работы со стеком.
36.Адресация операндов,способы адресации,примеры команд с различными способами адресации.
Команда - цифровой двоичный код состоящий из 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
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
37.Структура программы на Ассемблере.Стандартные директивы сегментации.
Программа на Ассемблере состоит из 3-х сегментов:
;сегмент стека Sseg Segment …......... Sseg ends
;сегмент данных Dseg Segment.......... Dseg ends
;сегмент кода Cseg Segment ….......... Cseq ends
Каждый сегмент начинается директивой начала сегмента — Segment и заканчивается директивой конца Ends. Существует специальная директива,устанавливающая соответствие между сегментными регистрами и именами в директиве сегмент.
ASSUME SS:Sseg,DS:Dseg,CS:Cseg,ES:Dseg. Кодовый сегмент оформляется как процедура: Cseq Segment ASSUME SS:Sseg,DS:Dseq,CS:Cseg,CS:Dseg
Pr1 proc …./….. Pr2 proc …./…. Pr2 endp …./…. Pr1 endp Cseg ends.
В сегменте стека выделяется место под стек. В сегменте данных описываются данные, используемые в программе, выделяется место под промежуточные и окончательные результаты. Кодовый сегмент содержит программу решения задач.
;Prim1.ASM ;|сегмент стека Sseg Segment… DB256| DUP(?)| Sseg ends |
;сегмент данных Dseg Segment… X DB |‘A’ |Y DB ‘B’ Z DB ‘C’| Dseg Ends| Cseg Segment| ASSUME SS:Sseg, DS:Dseg. CS:Cseg| Start Proc FAR| Push DS/ Push AX / MOV DX,Dseg/ MOV| DS,DX |Call MAIN| Ret| Start endp| MAIN Proc Near| ADD Al,X| MOV AX,Y| ……../………..| Ret| Main endp| Cseg ends| End start|
38.Формат команды и директивы на Ассемблере.Примеры команд и директив.
Ассемблер — язык программирования низкого уровня => программа на нем должна пройти 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 директива конца сегмента.