Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Вопросы по ЛР5_8 Рейтинг 2 СП_ответы_2.doc
Скачиваний:
3
Добавлен:
17.09.2019
Размер:
75.26 Кб
Скачать

Лр 6 (с повторами для каждого варианта)

  1. Что такое PSP? Его основные данные.

Структура данных, которая используется в ОС семейством DOS и CPIM для сохранения состояния компьютерных программ.Содержит основные данные, необходимые системе для обслуживания текущей программы.

  1. Для каких целей PSP может использоваться в программах?

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

  1. Какая информация хранится в PSP и как с ней работать?

Сегментный адрес области окружения DOS со смещением 2CH(DOS Environment)Параметры командной строки. С помощью прерывания 21h-51h к ним может быть осуществлен доступ.

  1. Как можно узнать число байт введенных параметров в командной строке?

Просмотр строки с параметрами лучше выполнять в цикле. В

алгоритмах рекомендую использовать команды LOASB и STOSB.

  1. Доп. Как можно определить число введенных параметров?

  2. Где можно получить информацию о структуре PSP?

В справочнике?

  1. Как выполнить доступ к PSP в *.COM файле?

С помощью прерывания 21h-функция 51h и смещения org 100h

  1. Как выполнить доступ к PSP в *.EXE файле?

С помощью прерывания 21h-функция 51h

  1. Поясните работу команд CALL и RET с учетом изменения и использования стека?

Call сохраняет в стеке адрес возврата(похоже на PUSH). Команда RET извлекает из  стека, подобно команде POP, адрес возврата и помещает его в  указатель команд.

  1. Доп. Как можно использовать в программе счетчик команд – оперативной памяти ($)?

счётчик команд – специальный регистр, в котором хранится адрес команды, которая должна быть выполнена после выполнения текущей команды. То есть при запуске программы в этом регистре хранится адрес первой команды. Регистр EIP или IP-в 16-разрядных системах

  1. Чем отличаются *.COM и *.EXE исполнимые файлы, построенные Ассемблером?

*.com файл

1)вписывается в сегмент

2)при компиляции ключ /t

3)ORG 100H — область для PSP

  1. Какие классы прерываний Вы знаете?

Программные, аппаратные

  1. Каким символом разделяются отдельные параметры при запуске программ?

Пробелами

  1. Какое максимальное число параметров можно задать в командной строке (вычислите)?

В тетради же показывал, неограниченное число параметров или 63

  1. Как Вы определили число параметров в своей программе?

Просмотр строки лучше выполнять в цикле. В

алгоритмах рекомендую использовать команды LOASB и STOSB

фрагмент программы для анализа наличия параметров в ко-

мандной строке.

MOV AL , CS:80H

CMP AL, 0 ; проверить число байт параметров командной строки

JNE INIT_UND ; перейти на метку если параметров нет

  1. Что такое БНФ и как ее используют программисты?

Язык описания формализованных конструкций других языков. Помогает в однозначном понимании правил записи операторов и команд, исключения ошибок.

  1. Доп. Какие данные из PSP Вы можете использовать в своих программах?

  2. Какие виды прерываний Вы знаете?

  3. В чем главное отличие программных и аппаратных прерываний?

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

По команде INT процессор осуществляет практически те же действия, что и при обычных прерываниях, но только это происходит в предсказуемой точке программы – там, где программист поместил данную команду. Поэтому программные прерывания не являются асинхронными (программа «знает», когда она вызывает прерывание).

  1. Как сделать прерывания недоступными?

Перевести процессор в защищенный режим?

  1. Поясните работу команд INT и IRET с учетом изменения и использования стека?

Int-вызывает программное прерывание

Команда IRET выполняется следующим образом:

1) слово из вершины стека передается в IP;

2) производится инкремент SP на 2;

3) слово из вершины стека передается в CS;

4) производится инкремент SP на 2;

5) слово из вершины стека передается в регистр флагов;

6) производится инкремент SP на 2.

  1. Как выполнить доступ к PSP в *.COM файле?

  2. Как выполнить доступ к PSP в *.EXE файле?

  3. Где можно получить информацию о структуре PSP?

  4. Как сделать прерывания снова доступными?