Доступность данных
Третьей целью безопасности данныхявляется их доступность. Бесполезно говорить о безопасности данных,если пользователь не может работать с ними из-за их недоступности. Вот приблизительный список ресурсов, которые обычно должны быть "доступны" в локальной сети:
Принтеры. Серверы. Рабочие станции. Данные пользователей. Любые критические данные, необходимые для работы.
48) Трансляторы ассемблера
Тасмымасмынасмыясмы различаются лишь синтаксисом и наобором команд
Трансляторы подразделяют:
*Диалоговый. Обеспечивает использование языка программирования в режиме разделения времени (англ.).
*Синтаксически-ориентированный (синтаксически-управляемый). Получает на вход описание синтаксиса и семантики языка и текст на описанном языке, который и транслируется в соответствии с заданным описанием.
*Однопроходной. Формирует объектный модуль за один последовательный просмотр исходной программы.
*Многопроходной. Формирует объектный модуль за несколько просмотров исходной программы.
*Оптимизирующий. Выполняет оптимизацию кода в создаваемом объектном модуле.
*Тестовый. Набор макрокоманд языка ассемблера, позволяющих задавать различные отладочные процедуры в программах, составленных на языке ассемблера.
*Обратный. Для программы в машинном коде выдаёт эквивалентную программу на каком-либо языке программирования
49) Структура ассемблера, адресное пространство.
Программа на ассемблере представляет собой совокупность блоков памяти, называемых сегментами памяти. Программа может состоять из одного или нескольких таких блоков-сегментов. Каждый сегмент содержит совокупность предложений языка, каждое из которых занимает отдельную строку кода программы.
Предложения ассемблера бывают четырех типов:
· команды или инструкции, представляющие собой символические аналоги машинных команд.
В процессе трансляции инструкции ассемблера преобразуются в соответствующие команды системы команд микропроцессора
· макрокоманды — оформляемые определенным образом предложения текста программы, замещаемые во время трансляции другими предложениями;
· директивы, являющиеся указанием транслятору ассемблера на выполнение некоторых действий. У директив нет аналогов в машинном представлении;
· строки комментариев, содержащие любые символы, в том числе и буквы русского алфавита. Комментарии игнорируются транслятором.
· Адресное пространство
· определяет число возможных отличимых друг от друга кодовых комбинаций (адресов), которые может выдать на адресную шину активное устройство. Это, конечно, не означает, что каждой такой комбинации соответствует программно-доступный элемент. Адресное пространство определяет лишь потенциальные возможности системы - максимальное число программно-доступных элементов, которые могут присутствовать в ней.
51) При программировании на языке ассемблера используются данные следующих типов:
Непосредственные данные, представляющие собой числовые или символьные значения, являющиеся частью команды.
Непосредственные данные формируются программистом в процессе написания программы для конкретной команды ассемблера.
Данные простого типа (байт, слово, двойное слово, учетверённое слово), описываемые с помощью ограниченного набора директив резервирования памяти, позволяющих выполнить самые элементарные операции по размещению и инициализации числовой и символьной информации. При обработке этих директив ассемблер сохраняет в своей таблице символов информацию о местоположении данных (значения сегментной составляющей адреса и смещения) и типе данных, то есть единицах памяти, выделяемых для размещения данных в соответствии с директивой резервирования и инициализации данных.
Эти два типа данных являются элементарными, или базовыми; работа с ними поддерживается на уровне системы команд микропроцессора. Используя данные этих типов, можно формализовать и запрограммировать практически любую задачу. Но насколько это будет удобно — вот вопрос.
Данные сложного типа (массивы, структуры,объединения;записи)., которые были введены в язык ассемблера с целью облегчения разработки программ. Сложные типы данных строятся на основе базовых типов, которые являются как бы кирпичиками для их построения. Введение сложных типов данных позволяет несколько сгладить различия между языками высокого уровня и ассемблером. У программиста появляется возможность сочетания преимуществ языка ассемблера и языков высокого уровня (в направлении абстракции данных), что в конечном итоге повышает эффективность конечной программы.
Распространёнными формами представления чисел со знаками является их представление в прямом, обратном и дополнительном коде.
Прямой код числа образуется кодированием знака числа нулём, если число положительно и единицей, если число отрицательно (для двоичной системы)
Для общего случая (q - 1) - если число отрицательно, и 0 - если число положительно. q - основание системы счисления.
Код знака записывается перед старшей цифрой числа и отделяется от неё точкой:
-1.01 = 1.101
Прямой, обратный и дополнительный коды положительных чисел совпадают между собой.
Обратный код отрицательного числа образуется из прямого кода, заменой его цифр на их дополнения до величины q-1. Код знака сохраняется без изменения.
Замена цифр их дополнениями для двоичной системы совпадает с операцией инверсии, то есть нули заменяются единицами, единицы - нулями. Знак принимает значение, равное единице.
Дополнительный код отрицательного числа образуется из обратного увеличением на 1 его младшего разряда. При этом перенос из знакового разряда игнорируется.