
- •Постановка задачи.
- •Моделирование.
- •Построение алгоритма.
- •Программирование.
- •Отладка и тестирование программы.
- •Анализ результатов. Уточнение модели.
- •1_4. Анализ алгоритмов
- •§2. Размещения с повторениями
- •§3. Размещения без повторений
- •§4. Сочетания
- •Оценка алгоритма сортировки
- •Грамматика языков программирования
- •1_7. Из лекций.
- •1_11. Разработка объектно-ориентированного по
- •Поколения эвм
- •Архитектура процессора
- •Команды
- •Форматы команд
- •Понятие ассемблера
- •Система прерываний
- •Порты ввода/вывода
- •Устройства памяти эвм
- •Реляционная алгебра
- •Этапы разработки базы данных
- •Критерии оценки качества логической модели данных
- •Адекватность базы данных предметной области
- •Легкость разработки и сопровождения базы данных
- •Скорость операций обновления данных (вставка, обновление, удаление)
- •Скорость операций выборки данных
- •Функциональные зависимости отношений и математическое понятие функциональной зависимости
- •1Нф (Первая Нормальная Форма)
- •3Нф (Третья Нормальная Форма)
- •Типы параллелизма Параллелизм на уровне битов
- •Параллелизм на уровне инструкций
- •Стандарты mpi
- •Ключевые элементы
- •1.1 Основные понятия искусственного интеллекта.
- •1.2 История развития искусственного интеллекта
- •1.3 Задачи искусственного интеллекта
- •Направления исследований Символьное моделирование мыслительных процессов
- •Работа с естественными языками
- •Накопление и использование знаний
- •Биологическое моделирование
- •Робототехника
- •Машинное творчество
- •Другие области исследований
- •1.4 Экспертные системы - направление исследований по искусственному интеллекту
- •2.1 Типовая структура экспертных систем
- •2.2 Интерфейс пользователя.
- •2.6 Механизм логического вывода
- •2.7 Объяснение решений
- •3.2 Модели представления знаний.
- •23. Нейронные сети. Виды нейронных сетей. Алгоритмы обучения нейронных сетей. Применение нейронных сетей для задач распознавания образов.
- •24. Администрирование операционных систем Windows и Unix. Установка и настройка. Типовые задачи администрирования. Язык командного интерпретатора. Сетевые возможности Windows и Unix.
- •Установка и начальная настройка системы
- •Выбор режима установки
- •Выбор носителя дистрибутива системы
- •Командные языки и командные интерпретаторы
- •Базовые возможности семейства командных интерпретаторов
- •11. Протоколы прикладного уровня http, ftp, почтовые протоколы (smtp, pop3, imap-4), telnet .
- •Гипертекстовый документ
Команды
Набор машинных команд управляет действиями машины. В этом наборе всегда в той или иной форме присутствуют команды LOAD и STORE, предназначенные для перемещения данных между памятью и регистрами, и команда MOVE, которая служит для копирования данных из одного регистра в другой. Также всегда присутствуют арифметические и логические команды, команды сравнения элементов данных и команды переходов в зависимости от результатов.
Форматы команд
Команда состоит из кода операции и некоторой дополнительной информации, позволяющей узнать, например, откуда поступают операнды и куда должны отправляться результаты. Процесс определения, где находятся операнды (то есть их адреса), называется адресацией.
Команды всегда содержат код операции. В команде могут присутствовать ни одного, один, два или три адреса.
Понятие ассемблера
Язык ассемблера — это язык, в котором каждый оператор соответствует ровно одной машинной команде. Иными словами, в программе, написанной на ассемблере, существует взаимно однозначное соответствие между машинными командами и операторами. Если каждая строка в ассемблерной программе содержит ровно один оператор, и каждое машинное слово содержит ровно одну команду, то из ассемблерной программы размером в n строк получится программа на машинном языке из n слов.
Мы программируем на языке ассемблера, а не на машинном языке (в шестнадцатеричной системе счисления), поскольку это гораздо проще. Использовать символические имена и адреса вместо двоичных и восьмеричных намного удобнее. Многие могут запомнить, что обозначениями для сложения (add), вычитания (subtract), умножения (multiply) и деления (divide) служат команды ADD, SUB, MUL и DIV, но мало кто сможет запомнить соответствующие числовые величины, которые использует для этих команд машина. Программисту, пишущему на языке ассемблера, нужно знать только символические названия, поскольку ассемблер транслирует их в машинные команды.
Это утверждение касается и адресов. Программист, пишущий на языке ассемблера, может давать символические имена ячейкам памяти, и уже ассемблер должен позаботиться о том, чтобы получить из них правильные числовые значения. В то же время программисту, пишущему на машинном языке, всегда приходится работать с числовыми значениями адресов.
Язык ассемблера имеет несколько особенностей, отличающих его от языков высокого уровня. Во-первых, это взаимно однозначное соответствие между операторами языка ассемблера и машинными командами. Во-вторых, программист, пишущий на ассемблере, имеет доступ ко всем объектам и командам целевой машины. У программистов, пишущих на языках высокого уровня, такого доступа нет. Ассемблерная программа может выполнить любую команду из набора команд целевой машины, а программа на языке высокого уровня — нет. Короче говоря, все, что можно сделать на машинном языке, можно сделать и на ассемблере, но в то же время программистам, пишущим программы на языках высокого уровня, недоступны многие команды, регистры и другие объекты. Языки для системного программирования (например, С) часто имеют некое промежуточное положение. Они, хотя и обладают синтаксисом, присущим языкам высокого уровня, с точки зрения возможностей доступа ближе к ассемблеру.
Наконец, ассемблерная программа может работать только на компьютерах одного семейства, а программа, написанная на языке высокого уровня, потенциально может работать на разных машинах. Возможность переноса программного обеспечения с одной машины на другую очень важна для многих прикладных программ.
Адресация памяти вычислительных систем — метод указания на ячейку памяти, к которой производится доступ.
Адресация может быть:
абсолютная — указывается прямой адрес ячейки памяти.
сегментная — указывается адрес относительно начала сегмента, в случае, если сегменты отсутствуют или совпадают, эквивалентна абсолютной.
относительная — указывается смещение относительно какого-либо значения.
косвенная — указывается адрес ячейки, содержащей адрес необходимой ячейки.
индексная — указывается адрес начала массива, размер элемента и порядковый номер элемента в массиве.
непосредственная — указывает на определённое число (Например: mov A,#50H - записать число 50H в аккумулятор).
регистровая — указывает на определённый регистр РОН (регистры общего назначения).
Все виды адресации могут быть переведены друг в друга, однако использование специфичной адресации может ускорить выполнение программы (например, замена индексной адресации на абсолютную потребует выполнить умножение, сложение, обращение к памяти).