Лр 6 (с повторами для каждого варианта)
Что такое PSP? Его основные данные.
Структура данных, которая используется в ОС семейством DOS и CPIM для сохранения состояния компьютерных программ.Содержит основные данные, необходимые системе для обслуживания текущей программы.
Для каких целей PSP может использоваться в программах?
Для размещения резидентного кода программы.Он содержит таблицы и поля данных, используемые системой в процессе выполнения программы
Какая информация хранится в PSP и как с ней работать?
Сегментный адрес области окружения DOS со смещением 2CH(DOS Environment)Параметры командной строки. С помощью прерывания 21h-51h к ним может быть осуществлен доступ.
Как можно узнать число байт введенных параметров в командной строке?
Просмотр строки с параметрами лучше выполнять в цикле. В
алгоритмах рекомендую использовать команды LOASB и STOSB.
Доп. Как можно определить число введенных параметров?
Где можно получить информацию о структуре PSP?
В справочнике?
Как выполнить доступ к PSP в *.COM файле?
С помощью прерывания 21h-функция 51h и смещения org 100h
Как выполнить доступ к PSP в *.EXE файле?
С помощью прерывания 21h-функция 51h
Поясните работу команд CALL и RET с учетом изменения и использования стека?
Call сохраняет в стеке адрес возврата(похоже на PUSH). Команда RET извлекает из стека, подобно команде POP, адрес возврата и помещает его в указатель команд.
Доп. Как можно использовать в программе счетчик команд – оперативной памяти ($)?
счётчик команд – специальный регистр, в котором хранится адрес команды, которая должна быть выполнена после выполнения текущей команды. То есть при запуске программы в этом регистре хранится адрес первой команды. Регистр EIP или IP-в 16-разрядных системах
Чем отличаются *.COM и *.EXE исполнимые файлы, построенные Ассемблером?
*.com файл
1)вписывается в сегмент
2)при компиляции ключ /t
3)ORG 100H — область для PSP
Какие классы прерываний Вы знаете?
Программные, аппаратные
Каким символом разделяются отдельные параметры при запуске программ?
Пробелами
Какое максимальное число параметров можно задать в командной строке (вычислите)?
В тетради же показывал, неограниченное число параметров или 63
Как Вы определили число параметров в своей программе?
Просмотр строки лучше выполнять в цикле. В
алгоритмах рекомендую использовать команды LOASB и STOSB
фрагмент программы для анализа наличия параметров в ко-
мандной строке.
MOV AL , CS:80H
CMP AL, 0 ; проверить число байт параметров командной строки
JNE INIT_UND ; перейти на метку если параметров нет
Что такое БНФ и как ее используют программисты?
Язык описания формализованных конструкций других языков. Помогает в однозначном понимании правил записи операторов и команд, исключения ошибок.
Доп. Какие данные из PSP Вы можете использовать в своих программах?
Какие виды прерываний Вы знаете?
В чем главное отличие программных и аппаратных прерываний?
Аппаратные прерывания вызываются физическими устройствами и возникают по отношению к программе асинхронно, т.е. в общем случае невозможно предсказать, когда и по какой причине программа будет прервана.
По команде INT процессор осуществляет практически те же действия, что и при обычных прерываниях, но только это происходит в предсказуемой точке программы – там, где программист поместил данную команду. Поэтому программные прерывания не являются асинхронными (программа «знает», когда она вызывает прерывание).
Как сделать прерывания недоступными?
Перевести процессор в защищенный режим?
Поясните работу команд INT и IRET с учетом изменения и использования стека?
Int-вызывает программное прерывание
Команда IRET выполняется следующим образом:
1) слово из вершины стека передается в IP;
2) производится инкремент SP на 2;
3) слово из вершины стека передается в CS;
4) производится инкремент SP на 2;
5) слово из вершины стека передается в регистр флагов;
6) производится инкремент SP на 2.
Как выполнить доступ к PSP в *.COM файле?
Как выполнить доступ к PSP в *.EXE файле?
Где можно получить информацию о структуре PSP?
Как сделать прерывания снова доступными?