LAB3_8SP2014c (1075929), страница 3
Текст из файла (страница 3)
Методическое пояснение 1: Процедура HEX для перевода символа может быть использована из 4-й ЛР.
Методическое пояснение 2: Для очистки экрана использовать отдельную процедуру – CLRSCR, а в ней нужно использовать прерывание BIOS 010h, для очистки экрана.
Методическое пояснение 3: В программе должно быть построено три цикла: цикл ввода символов, цикл вывода их шестнадцатеричного представления и общий цикл ввода строк. При организации вложенных циклов необходимо сохранять регистр CX.
Методическое пояснение 4: Проверка завершения внешнего цикла может быть выполнена командой CMP (раздел № 15.4 пособия) и командами условного перехода, например JE <метка>.
24 Дополнительные требования к ЛР
Предусмотреть дополнительно, кроме строк, ввод и перевод чисел, которые начинаются с цифры (0-9) и могут быть заданы в десятичном или шестнадцатеричном формате (шестнадцатеричные должны завершаться символом "h/H", десятичные числа без символов). Числа должны быть также переведены в машинное представление. По завершению программы на отдельной строке должно выдаться сообщение об ее успешном завершении программы и данные студента: ФИО, группа и номер варианта студента.
Методическое пояснение 5: Считать, что размер вводимых данных ограничивается двойным словом (DD – 4 байта в машинном виде).
25 Дополнительные требования к ЛР для сильных студентов
Создать отдельную универсальную процедуру для ввода и перевода в машинный формат числовых данных (любых типов: десятичных, восьмеричных и шестнадцатеричных) с клавиатуры. В процедуре предусмотреть контроль размерности вводимых чисел и выдачу диагностических сообщений при ошибках ввода. Процедура должна в стеке принимать параметры настройки и возвращать результат работы.
26 Контрольные вопросы по 5-й ЛР
-
"Для чего нужна данная команда?". Для строки листинга указанной преподавателем?
-
Какие разновидности команды XLAT Вы знаете, и чем они отличаются?
-
Как организовать ожидание ввода символа в Ассемблере?
-
Какие системы счисления Вы знаете?
-
В чем отличие символьного и шестнадцатеричного представления в ОП?
-
Можно ли в процедуру Ассемблера передать параметры при ее вызове и как?
-
Что такое стек и для чего он нужен?
-
В каких командах Ассемблера неявно используется стек?
-
Поясните по листингу работу команды CMP?
-
Поясните по листингу работу команды условного перехода - JE/JNE?
-
Как работает команда LOOP?
-
Какие регистры неявно используются в команде LOOP?
-
Поясните по листингу работу команды LOOP?
-
Поясните по листингу шестнадцатеричное представление указанной команды (в левой части листинга Ассемблера программы)?
-
Как организовать вложенный цикл?
-
Как по листингу определить размер программы в оперативной памяти (ОП)?
-
Как по листингу определить длину фрагмента программы, указанного преподавателем?
-
Расшифруйте по листингу формат команды, указанной преподавателем?
-
Чем отличаются *.COM и *.EXE исполнимые файлы, построенные Ассемблером?
-
Как можно в программе ассемблера организовать ветвление?
-
Поясните команды условного и безусловного перехода в программе.
-
Какие команды сравнения Вы знаете?
-
Какие команды условного перехода Вы знаете?
27 Требования к оформлению отчета по ЛР №5
Отчет по ЛР № 5 должен содержать:
-
Титульный лист (Смотри образец ниже в конце этого документа).
-
Кратко – Цель и задание на ЛР.
-
Привести перечень собственных ошибок.
-
Блок-схема алгоритма программы.
-
Распечатка листинга программы в формате Ассемблера (.LST).
-
Распечатка результатов работы программы.
Более детальные требования к оформлению отчетов для всех лабораторных работ по Ассемблеру рассмотрены ниже. Смотрите требования к отчетам, расположенные ниже в разделе 12 данного документа.
28 Лабораторная работа № 6. (Ввод и распечатка параметров к.с.) - 2014
29 Задание на ЛР №6
Разработать и отладить программу на языке Ассемблер для ввода, анализа (расшифровки, фактически грамматического разбора) и распечатки параметров командной строки при запуске программы (параметры размещаются в области PSP со смещением 081h). Нужно также описать в БНФ синтаксис запуска вашей программы с параметрами в командной строке для разработанной программы. Для этого надо изучить раздел 4 методических указаний к ЛР. Программа должна быть скомпонована в виде *.ЕХЕ - исполнимого файла.
30 Обязательные требования к ЛР
Предусмотреть ввод и анализ 2-х позиционных параметров командной строки (параметры читаются из области PSP) для обязательного варианта и 3-х параметров командной строки для дополнительных требований. Параметры имеют строгую позицию в командной строке. Второй параметр может быть пропущен для варианта дополнительных требований.
Методическое пояснение 1: После запуска программы *.EXE список параметров (текст вводимой командной строки сохраняется в PSP программы). Доступ к PSP может быть выполнен с помощью прерывания 21h – 51h или из сегментного регистра ES после первоначального запуска программы. Поле списка параметров начинается в PSP со смещение 081h (См. справочник). В области PSP со смещением 80H содержится число символов введенных параметров (один байт). При создании *.COM программы PSP располагается в начале программы (ORG 100h – область, в которую загрузчик записывает блок PSP).
Назначение и формат параметров должен быть следующий:
1. Первый параметр задает признак необходимости очистки экрана до начала работы программы и после ее завершения.
Задание первого параметра: /с=[Y/N], предусмотреть возможность ввода больших и маленьких латинских букв (например: /c=y или /C=Y или /C=n и так далее). Параметр является обязательным, при его отсутствии выдается сообщение: "Ошибка первого параметра". Затем программа завершается без очистки экрана.
2. Второй параметр определяет возможность вывода справки по работе с программой.
Задание второго параметра: “/Н” или “/?”. Предусмотреть возможность ввода больших и маленьких латинских букв. Параметр является необязательным. При его задании при запуске программы, она должна распечатывать: справку о работе с ней, данные его автора (ФИО, группа, номер варианта и краткое описание синтаксиса запуска программы), список введенных параметров и переходит в состояние ожидания до нажатия символа "*". При отсутствии этого параметра программа справку не печатает, а, после распечатки списка введенных параметров, переходит в состояние ожидания до нажатия любой клавиши (Например, "Enter").
3. Третий параметр задает ключ/пароль для доступа к работе с программой (для варианта с дополнительными требованиями).
Задание третьего параметра такое: /К=<слово>, устанавливаемое в параметре слово в качестве ключа должно определять фамилию студента (пароля ввода). Угловые скобки в моем проимере являются метасимволами. Параметр № 3 является обязательным, при неверном задании параметра (неверный ключ доступа) выдается сообщение: "Ошибка доступа при запуске программы". Справка не печатается, а распечатывается только список введенных параметров, а затем программа завершается без очистки экрана.
Данная программа компонуется и выполняется в виде *.EXE модуля. Нужно в программе обеспечить специальную распечатку параметров, которые были введены при текущем ее запуске, при запуске программы в формате (эта распечатка выполняется в любом случае):
Возможные значения параметров программы (справка о параметрах) обязательный вариант:
1-й параметр – /C=y|n , /C=Y|N (признак очистки экрана)
2-й параметр – присутствует (имя файла справки)
Значения параметров программы (справка о параметрах) дополнительные требования:
1-й параметр – /C=y|n (признак очистки экрана)
2-й параметр – присутствует|отсутвует (имя файла справки)
3-й параметр – /К=<******>, где число звездочек = числу букв в пароле, который введен
Пример запуска программы для обязательных требованиях:
>lab6.exe /C=Y /?
Примеры запуска программы для дополнительных требованиях:
>lab6.exe /C=Y /? /K=<Петров>
...
>lab6.exe /C=n /K=<Петров>
Пример распечатки введенных параметров обязательного варианта:
Введенные значения параметров программы:
1-й параметр – /C=Y
2-й параметр – присутствует
Пример распечатки введенных параметров дополнительного варианта:
3-й параметр – /К=<******>
…
Описать в БНФ синтаксис запуска в командной строке для разработанной программы. Для этого нужно изучить раздел 4 методических указаний к ЛР [2].
Оформить отчет по ЛР. Для оформления отчета студент должен знать или найти способ для вывода результата работы программы в текстовый файл. Лучше использовать копирование текста из окна командной строки (нежелательно снимать графическую картинку с экрана).
Методическое пояснение 2: С описанием и использованием метаязыка БНФ можно познакомиться в разделе № 4 методического пособия по ЛР.
Методическое пояснение 3: Между параметрами может быть произвольное число пробелов (дополнительные требования). Предусмотреть специальную процедуру для сброса пробелов (название - PROBCLR).
Методическое пояснение 4: Для доступа к PSP нужно выполнить процедуру доступа с помощью прерывания 021H –функция 051H.
Методическое пояснение 5: Для доступа к PSP можно также использовать значение регистра ES, формируемое при запуске программы. Желательно в отладчике удостоверится, что оно совпадает с адресом PSP, полученным с помощью прерывания 021H –функция 051H.
Методическое пояснение 6: Для очистки экрана использовать отдельную процедуру – CLRSCR и использовать для этого прерывание BIOS 010h.
31 Дополнительные требования к ЛР
Использовать вариант с тремя параметрами. Предусмотреть специальный (необязательный) параметр для распечатки справки о программе пароль не печатается и специальный параметр для распечатки внутреннего пароля.
Методическое пояснение 7: Разбор новых параметров нужно выделить в специальные процедуры для разбора новых параметров.
32 Дополнительные требования к ЛР для сильных студентов
Учесть все дополнительные требования. Придумать и использовать новые дополнительные параметры (минимум два) для условного управления вашей программой. Все параметры могут занимать произвольное место в перечне параметров командной строки (не позиционные, а ключевые параметры). Например, один из параметров может задавать признак выдачи звукового сигнала через динамик, а другой число таких сигналов (как в утилите BE BEEP).
33 Контрольные вопросы по 6-й ЛР
-
"Для чего нужна данная команда?". Для строки листинга указанной преподавателем?
-
Что такое PSP?
-
Для каких целей PSP может использоваться в программах?
-
Какая информация хранится в PSP и как с ней работать?
-
Как можно узнать число байт введенных параметров в командной строке?
-
Как можно определить число введенных параметров?
-
Где можно получить информацию о структуре PSP?
-
Как выполнить доступ к PSP в *.COM файле?
-
Как выполнить доступ к PSP в *.EXE файле?
-
Поясните по листингу работу команд CALL и RET с учетом изменения и использования стека?
-
Поясните по листингу шестнадцатеричное представление указанной команды?
-
Как можно использовать в программе счетчик команд ($)?
-
Расшифруйте по листингу формат команды, указанной преподавателем (тип, формат и значение исполнительного адреса)?
-
Чем отличаются *.COM и *.EXE исполнимые файлы, построенные Ассемблером?
-
Какие классы прерываний Вы знаете?
-
Каким символом разделяются отдельные параметры при запуске программ?
-
Какое максимальное число параметров можно задать в командной строке (вычислите)?
-
Как Вы определили число параметров в своей программе?
-
Что такое БНФ и как ее используют программисты?
-
Какие данные из PSP Вы можете использовать в своих программах?
-
Какие виды прерываний Вы знаете?
-
В чем главное отличие программных и аппаратных прерываний?
-
Как сделать прерывания недоступными?
34 Требования к оформлению отчета по ЛР №6
Отчет по ЛР № 6 должен содержать:
-
Титульный лист (Смотри образец ниже в конце этого документа).
-
Кратко – Цель и задание на ЛР.
-
Привести перечень собственных ошибок.
-
Блок-схема алгоритма программы.
-
Инструкция в БНФ для запуска разработанной программы.
-
Распечатка листинга программы в формате Ассемблера (.LST).
-
Распечатка результатов работы программы.
Более детальные требования к оформлению отчетов для всех лабораторных работ по Ассемблеру рассмотрены ниже. Смотрите требования к отчетам, расположенные ниже в разделе 12 данного документа.
35 Лабораторная работа № 7. (Ввод и вывод адреса) - 2014
36 Задание на ЛР №7
Разработать и отладить программу на языке Ассемблер для ввода с клавиатуры четырехразрядного числа (короткого адреса NEAR) в шестнадцатеричном представлении (доступные шестнадцатеричные цифры – 0123456789АBCDEF). Введенное значение переводиться в машинное представление в виде слова (2 байта - DW) и выводится затем на экран в шестнадцатеричном представлении и десятичном формате (нужно выполнить программный перевод из одной системы счисления в другую).
37 Обязательные требования к ЛР
Между введенным числом и его шестнадцатеричном представлением должен располагаться знак равенства ("="), между – формируемыми представлениями пробел. Например:
00FE=00FEh 254