LAB6_SP2010 (1075959)
Текст из файла
2
2010 год 2 курс 4-й семестр Большаков С.А.Лабораторная работа № 6. (Ввод и распечатка параметров командной строки) - 2010
Задание на ЛР: Разработать и отладить программу на языке Ассемблер для ввода анализа и распечатки параметров командной строки при запуске программы (параметры в области PSP со смещением 081h). Описать в БНФ синтаксис запуска в командной строке для разработанной программы.
Обязательные требования к ЛР: Предусмотреть ввод и анализ 3-х позиционных параметров (параметры читаются из области PSP). Параметры имеют строгую позицию в командной строке. Второй параметр могет быть пропущен. Назначение и формат параметров должен быть следующий:
1. Первый параметр задает признак необходимости очистки экрана до начала работы программы и после ее завершения.
Задание первого параметра: /с=[Y/N], предусмотреть возможность ввода больших и маленьких латинских букв (например: /c=y или /C=Y или /C=n и так далее). Параметр является обязательным, при его отсутствии выдается сообщение: "Ошибка первого параметра". Затем программа завершается без очистки экрана.
2. Второй параметр определяет возможность вывода справки по работе с программой.
Задание второго параметра: “/Н” или “/?”. Предусмотреть возможность ввода больших и маленьких латинских букв. Параметр является необязательным. При его использовании при запуске программы, она должна распечатывать справку по работе с программой, данные его автора (ФИО, группа и номер варианта) и переходить в состояние ожидания до нажатия символа "*". При отсутствии параметра программа просто переходит в состояние ожидания до нажатия клавиши "Enter".
3. Третий параметр задает ключ доступа к работе с программой.
Задание третьего параметра: /К=<слово>, устанавливаемое в параметре слово в качестве ключа должно определять фамилию студента (пароля ввода). Параметр является обязательным, при неверном задании параметра (неверный ключ доступа) выдается сообщение: "Ошибка доступа при запуске программы". Затем программа завершается без очистки экрана.
Данная программа выполняется в виде *.EXE модуля. Нужно в программе обеспечить специальную распечатку параметров, которые были введены при текущем ее запуске, при запуске программы в формате (эта распечатка выполняется в любом случае):
Значение параметров программы:
1-й параметр – /C=y
2-й параметр –отсутствует/присутствует
3-й параметр – /К=<****>, где число звездочек определяет число букв в слове пароля, который был введен.
Пример запуска:
>lab6.exe /C=Y /? /K=<Петров>
Пример распечатки параметров:
Значение параметров программы:
1-й параметр – /C=Y
2-й параметр – присутствует
3-й параметр – /К=<******>
…
Примечание 1: С описанием и использованием метаязыка БНФ можно познакомиться в разделе № 4 методического пособия по ЛР.
Примечание 2: Между параметрами может быть произвольное число пробелов. Предусмотреть специальную процедуру для сброса пробелов ( название - PROBCLR).
Примечание 3: Для доступа к PSP нужно выполнить процедуру доступа с помощью прерывания 021H –функция 051H.
Примечание 4: Для доступа к PSP можно также использовать значение регистра ES, формируемое при запуске программы. В отладчике удостоверится, что оно совпадает с адресом PSP, полученным с помощью прерывания 021H –функция 051H.
Примечание 5: Для очистки экрана использовать отдельную процедуру – CLRSCR и использовать прерывание BIOS 010h.
Дополнительные требования к ЛР: Придумать и использовать дополнительные параметры (минимум два) для управления Вашей программой. Все параметры могут занимать произвольное место в перечне параметров командной строки. Например, один из параметров может задавать признак выдачи звукового сигнала через динамик, а другой число таких сигналов (как в BE BEEP).
Примечание 6: Сделать специальные процедуры для разбора новых параметров.
Контрольные вопросы по 6-й ЛР:
-
"Для чего нужна данная команда?". Для строки листинга указанной преподавателем?
-
Что такое PSP?
-
Для каких целей PSP может использоваться в программах?
-
Какая информация хранится в PSP и как с ней работать?
-
Где можно получить информацию о структуре PSP?
-
Как выполнить доступ к PSP в *.COM файле?
-
Как выполнить доступ к PSP в *.EXE файле?
-
Поясните по листингу работу команд CALL и RET с учетом изменения и использования стека?
-
Поясните по листингу шестнадцатеричное представление указанной команды?
-
Как можно использовать в программе счетчик команд ($)?
-
Расшифруйте по листингу формат команды, указанной преподавателем (тип, формат и значение исполнительного адреса)?
-
Чем отличаются *.COM и *.EXE исполнимые файлы, построенные Ассемблером?
-
Какие классы прерываний Вы знаете?
-
Как проверить наличие параметров в программе?
-
Каким символом разделяются отдельные параметры при запуске программ?
-
Какое максимальное число параметров можно задать в командной строке (вычислите)?
-
Как Вы определили число параметров в своей программе?
-
Что такое БНФ и как ее используют программисты?
-
Какие данные из PSP Вы можете использовать в своих программах?
-
Какие виды прерываний Вы знаете?
-
В чем главное отличие программных и аппаратных прерываний?
-
Как сделать прерывания недоступными?
Характеристики
Тип файла документ
Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.
Будьте внимательны на мобильных устройствах, так как там используются упрощённый функционал даже в официальном приложении от Microsoft, поэтому для просмотра скачивайте PDF-версию. А если нужно редактировать файл, то используйте оригинальный файл.
Файлы такого типа обычно разбиты на страницы, а текст может быть форматированным (жирный, курсив, выбор шрифта, таблицы и т.п.), а также в него можно добавлять изображения. Формат идеально подходит для рефератов, докладов и РПЗ курсовых проектов, которые необходимо распечатать. Кстати перед печатью также сохраняйте файл в PDF, так как принтер может начудить со шрифтами.