Методические указания к лабораторным работам № 3-8 (1075924), страница 2
Текст из файла (страница 2)
Оформить отчет по ЛР. Для оформления отчета студент должен знать или найти способ для вывода результата работы программы в текстовый файл. Лучше использовать копирование текста из окна командной строки (нежелательно снимать графическую картинку с экрана).
Методическое пояснение 1: Программе должны быть задействованы подфункции: 1h, 2h, 4Ch (в регистре AH) прерывания 021h. Смотрите справочники и разделы методического пособия по ЛР.
Методическое пояснение 2: Простой запуск на компиляцию, редактирование связей, отладку программы рассмотрен в разделе № 2 методического пособия [2]. Там есть примеры запуска программ и поученные в программе результаты.
7 Обязательные требования к ЛР
Необходимо использовать процедуры при разработке программы. Предусмотреть минимально три процедуры: для ввода символа (1-я процедура - GETCH название процедуры ввода символа желательно взять такое название), для вывода одного символа (2-я процедура - PUTCH) и для перевода строки с возвратом каретки (3-я процедура - CLRF) на дисплее (оформление процедур - PROC - ENDP, вызов процедур - CALL). Детальное оформление процедур описано в разделе № 10 методического пособия[2]. После вывода букв программа переходит в состояние ожидания нажатия любой клавиши. Выход из программы осуществить посредством прерывания 21H - 04CH. Ввод символа необходим для организации ожидания завершения программы.
Примечание: Вывод русских букв в правильном начертании должен быть выполнен: при работе программы, в листинге программы (в отчете) и в распечатке результатов ее работы. Нужно иметь виду, что при работе программы (эмуляторы ДОС и командной строки) и ее распечатке в документе отчета (MS WORD) используется разная кодировка (ANSI и ASCII). Для перекодировки можно использовать программу: Программа перекодировки DOS-WINDOWS - trans.exe (есть на сайте) или редактор текста с аналогичными возможностями. Все вопросы, связанные с кодами и использованием русификаторов изложены в разделе 23 методического пособия.
Методическое пояснение 3: Во всех ЛР не разрешается использовать системные макрокоманды и псевдооператоры Ассемблера для оформления сегментов (команды типа – .model, .data, .code и др.). Оформление сегментов выполняется директивами ассемблера: SEGMENT, ENDS и ASSUME (смотрите простой пример в пособии [2]). Это нужно для того, чтобы вы освоили приемы правильного оформления программы. Макрокоманды будем изучать и использовать в других ЛР.
Методическое пояснение 4: На первом этапе работы, для усвоения правил оформления и обработки программ на Ассемблере, можно создать и отладить самую простую программу без процедур для вывода одного символа (раздел №2 пособия). Затем можно преобразовать эту программу в вариант программы с процедурами.
Методическое пояснение 5: Оформление и использование процедур в программе рассмотрено в разделе № 10 методического пособия.
Методическое пояснение 6: Более детальное описание технологии подготовки программы рассмотрено в разделе № 3 методического пособия.
Методическое пояснение 7: Перевод строки и возврат каретки осуществляется выводом на дисплей специальных кодов, которые нужно найти в электронном справочнике и в разделе № 23 пособия по ЛР (процедура CLRF). При оформлении этой процедуры желательно дважды вызвать раннее разработанную процедуру вывода одного символа (PUTCH).
Методическое пояснение 8: Оформление блок-схемы программы этой ЛР рассмотрено в разделе № 21 методического пособия.
8 Дополнительные требования к ЛР № 3
В программе организовать очистку экрана до начала вывода символов, а также после завершения работы программы. Очистка экрана должна выполняться отдельной дополнительной процедурой на языке Ассемблер (название ее - CLRSCR). Очистка экрана должна быть выполнена без организации циклов вывода символов с помощью соответствующего прерывания (найденного в справочнике). При полнении дополнительных требования в тексте программы добавляется специальный комментарий, подтверждающий выполнение дополнительных команд и операций. На титульном листе отчета нужно отметить факт выполнения ЛР с дополнительными требованиями
9 Дополнительные требования к ЛР № 3 для сильных студентов
В программе дополнительно вывести столбиком (построчно) фамилию, имя и отчество студента. Организовать циклическое выполнение основной части программы при вводе ожидаемого символа, отличного от символа звездочки (“*”). Развернуть и запустить СП QC25 (есть на сайте) и проверить работу своей программы в этой оболочке.
10 Контрольные вопросы по 3-й ЛР
-
"Для чего нужна данная команда?". Для строки листинга программы указанной преподавателем?
-
Какие основные функции выполняет отладчик при программировании на Ассемблере?
-
Какие основные режимы выполнения программы в режиме отладки Вы знаете?
-
Зачем нужен компилятор ассемблера? Его основные функции.
-
Как можно получить информацию о режимах работы компилятора (параметры компилятора) в командной строке? Какие параметры компилятора установлены по-умолчанию?
-
Зачем нужен редактор связей (компоновщик) в СП? Его основные функции.
-
Как можно получить информацию о режимах работы редактора связей в командной строке? Какие параметры компоновщика установлены по-умолчанию?
-
Что нужно сделать для создания программы в формате .COM - исполнимого файла?
-
Как задаются параметры процедуры на Ассемблере и как вызываются процедуры?
-
Что такое стек? Какие команды работы со стеком Вы знаете?
-
Поясните машинное представление команды Ассемблера, указанной преподавателем по листингу (в левой колонке листинга).
-
Какой отладчик вы применяли в работе? Какие режимы отладки Вы знаете?
-
Как можно получить информацию о режимах работы отладчика в командной строке?
-
Вопрос по меню QC 2.5 и опциям компилятора TASM (в зависимости от используемой в ЛР системы программирования).
-
Какое прерывание используется для вывода одного символа на экран?
-
Какое прерывание используется для ввода одного символа с клавиатуры?
-
Какое прерывание используется для корректного завершения программы?
-
Какой командой выполняется вызов процедуры?
-
Что происходит с регистрами IP, SS и стеком при коротком (NEAR) вызове процедуры? Показать в отладчике.
-
Что происходит с регистрами IP, SS и стеком при выполнении команды RET для возврата из процедуры. Показать в отладчике.
-
Какие возможности и операции есть у отладчика при выполнении программ?
-
Как в Ассемблере оформляются и вызываются процедуры?
-
Как в процедуру можно передать параметры и возвратить результат из нее?
-
Какие коды используются для перевода строки и возврата каретки на дисплее?
11 Требования к оформлению отчета по ЛР №3
Отчет по ЛР № 3 должен содержать:
-
Титульный лист (Смотри образец ниже в конце этого документа).
-
Кратко – Цель и задание на ЛР.
-
Перечень собственных ошибок.
-
Блок-схема алгоритма программы.
-
Распечатка листинга программы в формате Ассемблера (.LST).
-
Распечатка результатов работы программы (не набор в WORD, а реальная распечатка).
Более детальные требования к оформлению отчетов для всех лабораторных работ по Ассемблеру рассмотрены ниже. Смотрите требования к отчетам, расположенные ниже в разделе 12 данного документа.
12 Лабораторная работа № 4. (Циклы и перевод символов) - 2014
13 Задание на ЛР №4
Разработать и отладить программу на языке Ассемблер для вывода на экран первых 20 последовательных прописных букв русского алфавита (начиная с символа А). Символы должны быть представлены в символьном и шестнадцатеричном представлении (через черточку). Каждая буква выводится в виде символьного представления и 2-х разрядного шестнадцатеричного числа на отдельной строке.
14 Обязательные требования к ЛР
Шестнадцатеричная перекодировка (перевод одного представления в другое) должна выполняться командой XLAT по таблице перекодировки вида: 0123456789ABCDEF (применение этой команды рассмотрено в разделе № 16 методического пособия по ЛР [2]). Переведенные представления букв выводятся на экран дисплея последовательно в отдельной строке (символьное - шестнадцатеричное, например "А - 80" – рус. ДОС). После завершения вывода букв нужно организовать ожидание ввода любого символа с клавиатуры. В программе использовать четыре процедуры: для ввода символа (1 - GETCH), вывода одного символа (2 - PUTCH), перевода буквы в шестнадцатеричное представление (3-я процедура HEX) и перевода строки и возврата “каретки” экрана дисплея (4 - CLRF). Выход из программы выполнить посредством прерывания 21H - 04CH после нажатия любой клавиши.
Оформить отчет по ЛР. Для оформления отчета студент должен знать или найти способ для вывода результата работы программы в текстовый файл. Лучше использовать копирование текста из окна командной строки (нежелательно снимать графическую картинку с экрана).
Методическое пояснение 1: Процедуры GETCH, PUTCH и CLRF могут быть использованы из 3-й ЛР. Процедура HEX должна выполнять перевод и выводить сразу две шестнадцатеричные цифры для конкретного кода символа, который передается в качестве параметра. Оформление и использование процедур на ассемблере рассмотрено в разделе №10 пособия.
Методическое пояснение 2: Применение команды XLAT показано в разделе № 16.1 методического пособия.
Методическое пояснение 3: Цикл вывода символов организовать с помощью команды цикла -LOOP. Применение команды LOOP показано в разделе № 16. методического пособия.
15 Дополнительные требования к ЛР
Организовать очистку экрана до начала работы основной программы лабораторной работы, и после ее завершения работы программы. Организовать вывод букв в виде таблицы с рамкой из одинарных линий (Для этого нужно использовать символы псевдографики, например, такие как: “┌”, “─” , “┐”, “├”, “┤” и др. – смотрите в справочниках и в пособии см. раздел № 23 пособия раздел о кодах). Например:
┌───────┐
│А = 80H│
├───────┤
│Б = 81H│
├───────┤
…
Таблицу для вывода символов можно построить и по-другому: с двойной рамкой, звездочками и т.д..
Методическое пояснение 4: Познакомиться с понятием кодов и их разновидностями Вы можете в разделе № 23 методического пособия.
Методическое пояснение 5: При выводе символов (см. дополнительные требования для сильных студентов) нужно контролировать вывод символов управления дисплеем и других управляющих кодов на экран. Эти символы не нужно пытаться выводить на экран, а нужно их распознавать и вместо них выводить знак “?”.
Методическое пояснение 6: Для правильного оформления блок-схем программ нужно познакомиться с разделом 21 методического пособия.
16 Дополнительные требования к ЛР № 4 для сильных студентов
Обеспечить ввод значения любого начального символа , начиная с которого выводится на экран 20 символов. Нужно ограничить возможность ввода и вывода управляющих символов (коды 00-20h). Оформить дополнительно процедуру вывода таблицы с двойными рамками (”║” и т.д.).
17 Контрольные вопросы по 4-й ЛР
-
"Для чего нужна данная команда?". Для строки листинга указанной преподавателем?
-
Какие разновидности команды XLAT Вы знаете, и чем они отличаются?
-
Как выполняется перекодировка с помощью XLAT? Покажите в программе и поясните.
-
Какова максимальная длинна таблицы перекодировки в команде XLAT?
-
Что такое ASCII коды?
-
Что такое ANSY коды?
-
Что такое UNICOD код?
-
Что такое Scan коды?
-
Что такое extended key коды?
-
Как организовать ожидание ввода символа в Ассемблере?
-
Можно ли в процедуру Ассемблера передать параметры при ее вызове и как?
-
Что такое стек и для чего он нужен?
-
В каких командах Ассемблера явно используется стек?
-
В каких командах Ассемблера неявно используется стек?
-
Как задается число повторений в команде LOOP?
-
Как проверяется конец окончания цикла в команде LOOP?
-
Можно ли прервать выполнение цикла до его завершения по счетчику?
-
Какие есть ограничения использования команды LOOP? Что делать при их возникновении?
-
Поясните по листингу работу команды LOOP?
-
Поясните по листингу шестнадцатеричное представление указанной команды?
-
Какое прерывание используется для вывода одного символа на экран?
-
Какое прерывание используется для ввода одного символа с клавиатуры?
-
Какое прерывание используется для корректного завершения программы?
-
Зачем нужен компилятор ассемблера?
-
Как организовать в программе двойной цикл (вложенный) на языке Ассемблер?
-
Как можно получить информацию о режимах работы компилятора в командной строке?
-
Зачем нужен редактор связей в СП?
-
Как можно получить информацию о режимах работы редактора связей в командной строке?
18 Требования к оформлению отчета по ЛР №4
Отчет по ЛР № 4 должен содержать:
-
Титульный лист (Смотри образец ниже в конце этого документа).
-
Кратко – Цель и задание на ЛР.
-
Привести перечень собственных ошибок.
-
Блок-схема алгоритма программы.
-
Распечатка листинга программы в формате Ассемблера (.LST).
-
Распечатка результатов работы программы.
Более детальные требования к оформлению отчетов для всех лабораторных работ по Ассемблеру рассмотрены ниже. Смотрите требования к отчетам, расположенные ниже в разделе 12 данного документа.
19 Лабораторная работа № 5. (Ввод строки и вывод в машинном формате) - 2014
20 Задание на ЛР №5
Разработать и отладить программу на языке Ассемблер для ввода строки символов с клавиатуры (последовательности символов) и вывода их в шестнадцатеричном представлении (через пробел). В данной программе необходимо предусмотреть запоминание строки символов в байтовом массиве.
21 Обязательные требования к ЛР
Признак завершения ввода строки – это символ "$" (он вводиться с клавиатуры для завершения ввода). Между введенной строкой символов и их шестнадцатеричным представлением должен располагаться знак равенства (“=”). Например: "АБВ=80 81 82". Требования к процедурам и их именованию совпадают с требованием предыдущих ЛР. Программа должна работать в циклическом режиме (используется команда LOOP): после ввода одной строки запрашивается следующая. Завершение цикла ввода строк выполняется по введенному символу “*”, введенному в первой позиции строки. Для ввода/вывода строки и ее шестнадцатеричного представления разрабатываются дополнительные процедуры. Организовать очистку экрана до начала работы программы, а также после ее завершения (С помощью специальной процедуры - CLRSCR). Программа должна быть оформлена в виде СОМ – файла (*.com).