- •Кафедра автоматизації і комп’ютерних систем
- •Классификация архитектурных типов процессоров.
- •Традиционно машинный уровень.
- •Команды обращения к процедурам
- •Процедуры
- •Управление циклами
- •Представление данных
- •Управление процессами
- •Типы адресации
- •Поиск и сортировка
- •Сортировка данных
- •Межпроцессорное взаимодействие.
- •Критические области.
- •Методы синхронизации с пассивным ожиданием.
- •Решение задачи производительности потребителя с помощью мониторов.
- •Разработка систем с помощью передачи сообщений.
- •Классические проблемы межпроцессорного взаимодействия.
- •Планировщик процессов
- •Планирования в системах реального времени.
- •Организация виртуальной памяти.
- •Стратегии замещения страниц.
- •Алгоритм «2-я попытка»
- •Алгоритм «часы»
- •Алгоритм nfu (редко используемая страница)
- •Методы ускорения работы со страницами
- •Способы ассемблирования
- •Связывание программ
- •Структура объектного модуля
- •Атака системы безопасности
- •Принципы проектирования систем безопасности.
- •Аутентификация пользователей
- •Механизм защиты
- •Технические механизмы защиты
- •Защита информации при передаче
- •Основные понятия криптографии:
- •Криптографический протокол
- •Гибридные криптосистемы
- •Цифровая подпись
- •Сертификаты
- •Алгоритм des
- •Принципы аутентификации управления доступом
- •Аутентификация с использованием односторонних функций
- •Аутентификация по принципу "запрос-ответ"
- •Аутентификация управления доступом в Unix
- •Супер-пользователь Root
- •Теневые пароли
- •Поддержка возможностей в Linux.
- •Аутентификация.
- •Идентификаторы безопасности.
- •Одалживание прав.
- •Управление доступом Windows xp.
- •Аудит. Общие принципы.
- •Локальная безопасность.
- •Сетевая безопасность
Способы ассемблирования
По способам ассемблирования ассемблеры делятся на одно- и двухпроходные в зависимости от способа решения так называемой проблемы ссылок вперед. При организации разветвляющихся и циклических процессов используются команды условного перехода. В случае ссылки назад или цикла с постусловием транслятор находит метку до того, как найдет команду условного перехода, которая использует эту метку, и заранее зная на какую ячейку памяти программывыполняется переход, нормальнооттранслирует команду условного перехода. Если выполняется ссылка вперед, транслятор не знает на какую ячейку адресуется метка команды и не может ее оттранслировать.
Двухпроходной ассемблер во время первого прохода определяет все условные обозначения, макроопределения и метки, а во время второго прохода ассемблирует код.
Однопроходной ассемблер, когда ему попадается ссылка вперед, не выполняет транслюцию команды, а оставляет место под соответствующий машинный код и переписывает ее в специальную таблицу с указанием места, откуда эта команда была взята. Когда транслятору попадается метка с точкой входа, транслятор доопределяет соответствующую запись в таблице и дописывает пропущенную команду на ее место. При повторной встречи уже определенной метки, команда перехода транслируется сразу. Значение метки при этом берется из таблицы.
Макросы – псевдокоманды к транслятору прописать в определенное место исходного кода заранее определенный фрагмент кода.
Макроопределение – метод присвоения имени некоторому участку кода.
Макрос состоит из трех частей:
Псевдокоманды заголовка макроса, задающего имя макроса.
Текст, составляющий тело макроса.
Псевдокоманды конца макроса.
Макровызов – использование макроса в теле основной программы.
Макровызов считается псевдокомандой.
Макрорасширение – процесс замены макровызова на тело макроса. Оно производится во время трансляции.
Для многих макросов необходимо изменять внутренний текст, как правило относящийся к адресам или именам регистров. Для этого используются т.н. макросы с параметрами. В заголовке макроса указывается одно или несколько (до 8) символических имен, которые затем используются в теле макроса. При вызове макроса в ходе программы в порядке следования входящих переменных макроса указываются необходимые адреса, названия регистров или метки, которые во время макрорасширения ставятся на места использования входящих переменных макроса.
Условное макрорасширение (в языке Ассемблера – условное ассемблирование) – механизм, позволяющий проводить макрорасширения с различным содержимым в зависимости от управляющих параметров.
Вложенные макровызовы – механизм, позволяющий использовать макровызовы внутри макросов.
Циклические макросы (макросы с модифицированными параметрами) – отличительная их особенность в том, что при вызове транслятор сам способен модифицировать входящие параметры, прибавляя к их именам индексы, что позволяет организовать циклический вызов макроса.
Рекурсивные макровызовы – позволяют вызывать макрос внутри тела макроса. При этом необходимо использовать условное ассемблирование, т.к. рекурсивные макровызовы способны зациклить ассемблер и приводят к вечно транслированной программе.
