Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы теория.docx
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
37.81 Кб
Скачать

2. Структура байта атрибута, назначение атрибутов файла.

При создании файла задаются его атрибуты. Ниже приведена структура

байта атрибутов.

┌──┬──┬──┬──┬──┬──┬──┬──┐

│ │ │ │ │ │ │ │ │

└──┴──┴──┴──┴──┴──┴──┴──┘

│ 7 │6 │5 │4 │3│ 2 │1 │0

│ │ │ │ │ │ │ └ обычный файл

│ │ │ │ │ │ └только для чтения

│ │ │ │ │ └ спрятанный файл

│ │ │ │ └ системный файл

│ │ │ └метка тома

│ │ └ каталог

│ └─ архивный файл

└── не используется

Байт атрибутов используется для файлов, каталогов и меток тома(назва-

ние диска). Единица в соответствующем бите указывает определенное свойство,

ноль - отсутствие этого свойства. Биты "каталог" и "метка тома" для файлов

не должны устанавливаться.

3. Команда дальнего возврата, формат команды, адресация перехода,

алгоритм команды.

retf - межсегментный возврат

[SP] -> IP

SP:= SP+2

[SP] -> CS

SP:= SP+2

Алгоритм работы:

Работа команды зависит от типа процедуры:

для процедур дальнего типа - последовательно восстановить из стека содержимое eip/ip и сегментного регистра cs.

Команда RET предназначена для возврата из подпрограмм, она передает управление по адресу возврата, выбираемому из стека. Этот адрес обычно помещается в стек командой CALL. Необязательный числовой параметр команды RET указывает количество байт, которые команда дополнительно освобождает в стеке после извлечения адреса возврата (эти байты могли содержать, например, параметры покидаемой подпрограммы, переданные командой CALL-через_шлюз_вызова).

Для дальнего возврата адрес в стеке является дальним указателем, первым извлекается смещение, затем следует селектор.

В реальном режиме регистры CS и IP загружаются сразу без каких-либо проверок.

В защищенном режиме дальний возврат инициализирует проверку селектора и дескриптора адреса возврата. Кроме этого, возврат к меньшему уровню привилегий вызывает перезагрузку стека SS:eSP значением, сохраненным перед блоком параметров стека покидаемой процедуры. Сегментные регистры DS, ES, FS и GS могут быть очищены при выполнении дальнего возврата к меньшему уровню привилегий, если значения селекторов в этих регистрах задают сегменты, которые не могут быть использованы на новом уровне привилегий (определяется путем анализа соответствующих дескрипторов).

Если осуществляется дальний возврат с изменением уровня привилегий и очисткой блока параметров в стеке, то соответствующее число байт освобождается как в стеке покидаемой процедуры, так и в стеке головной процедуры.

Билет 3.

2. Организация главной программы как дальней процедуры.

Организация главной программы, как дальней процедуры.

begin proc far Состояние стека после выполнения

команд для возврата в DOS

возврат┌─ push DS ├────────────┤

в │ xor AX,AX; AX:=0 │ 0000h │<─ SP

DOS └─ push AX ├────────────┤

│ Адрес PSP │

инициализа- ┌─ mov AX,DSeg ├────────────┤

ция сегмента└─ mov DS,AX

данных

retf

begin endp

Cseg ends

end begin;begin - пусковой адрес

Главная программа заканчивается выполнением команды retf, по кото-

рой осуществляется переход на начало PSP. Затем выполняется int 20h и

управление возвращается в DOS.