LAB3_8SP2014c (1075929), страница 4
Текст из файла (страница 4)
...
Программа должна работать в циклическом режиме, то есть после ввода одного числа, запрашивается ввод нового. Завершение цикла ввода чисел выполняется по знаку “*” в первой позиции строки ввода. Для ввода и перевода должны быть использованы базовые процедуры (см. ЛР выше). Нужно организовать очистку экрана до начала работы программы, и после ее завершения. По завершению программы выдается сообщение об ее успешном окончании и данные студента: ФИО, группа и номер варианта. Для запроса вводимого числа предварительно должна выдаваться подсказка в виде:
“Введите число> ”.
Оформить отчет по ЛР. Для оформления отчета студент должен знать или найти способ для вывода результата работы программы в текстовый файл. Лучше использовать копирование текста из окна командной строки (нежелательно снимать графическую картинку с экрана). Программа может быть выполнена в виде *.EXE и *.COM исполнимого модуля.
Методическое пояснение 1: Вывод информации нужно выполнить с помощью функции вывода строки 09h – 021h (предварительно нужно записать введенные и выводимые данные в массивы). Не забудьте в конце строки выполнить перевод строки и возврат каретки с помощью закодированных в конце строки символов 0Ah и 0Dh. Строка в массивах должна при этом завершаться символом – “$”.
38 Дополнительные требования к ЛР
Предусмотреть ввод длинного адреса (FAR – <сегмент>: <смещение>), в виде двух шестнадцатеричных чисел разделенных знаком “:” (Например – 0099:01AFh).
39 Дополнительные требования к ЛР для сильных студентов
Учесть все дополнительные требования. Перевести введенные данные в десятичную и восьмеричную систему счисления и вывести на экран дисплея в этой же строке.
40 Контрольные вопросы по 7-й ЛР
-
"Для чего нужна данная команда?". Для строки листинга указанной преподавателем?
-
Поясните назначение регистров: CS, DS, SS и ES.
-
Что такое короткий адрес (NEAR)?
-
Что такое длинный адрес (FAR)?
-
Как и когда заполняются сегментные регистры (CS, DS, SS и ES) в *.ЕХЕ .файле
-
Как в отладчике посмотреть содержимое стека?
-
Как получить адрес и местоположение PSP?
-
Какие регистры МП управления вы знаете? Их назначение?
-
Для чего нужны сегментные регистры?
-
Как определить в программе на языке Ассемблера адрес выполняемой команды?
-
Для чего в программе и как заноситься регистр DS?
-
Как в отладчике выполнить анализ выполняемой команды? Что для этого нужно сделать?
-
Как запустить компилятор без формирования отладочной информации?
-
Как запустить TLINK (или LINK) без формирования отладочной информации?
-
Для чего нужна утилита make.exe? Как ее использовать?
-
Для чего нужна утилита grep.com? Как ее использовать?
-
Для чего нужна утилита tlib.exe (lib.exe)? Как ее использовать?
-
Как при редактировании связей подключить объектные модули (*.obj) из библиотеки (*.lib)?
41 Требования к оформлению отчета по ЛР №7
Отчет по ЛР № 7 должен содержать:
-
Титульный лист (Смотри образец ниже в конце этого документа).
-
Кратко – Цель и задание на ЛР.
-
Привести перечень собственных ошибок.
-
Блок-схема алгоритма программы.
-
Распечатка листинга программы в формате Ассемблера (.LST).
-
Распечатка результатов работы программы.
Более детальные требования к оформлению отчетов для всех лабораторных работ по Ассемблеру рассмотрены ниже. Смотрите требования к отчетам, расположенные ниже в разделе 12 данного документа.
42 Лабораторная работа № 8. (Вывод дампа оперативной памяти по введенному адресу) - 2014
43 Задание на ЛР №8
Разработать и отладить программу на языке Ассемблер для вывода на экран дампа оперативной памяти в шестнадцатеричном виде (распечатки содержимого ОП) по адресу, задаваемому с клавиатуры в шестнадцатеричном виде (адрес FAR - пара чисел, например - 00EF:012A0). Вывод информации на экран производиться как в отладчиках.
44 Обязательные требования к ЛР
Должно быть выведено 16 строк дампа, в каждой строке выводиться по 24 байта (48 шестнадцатеричных цифры). Каждая выводимая строка дампа должна начинаться с соответствующего адреса ее расположения (адрес отделяется от информации с помощью “: ” пробелом). Перед дампом на экран в виде отдельных строк выводятся: адрес дампа, значения регистров данных, сегментов и указателей: AX, BX, CX, DX, CS, DS, SS, ES, SP, SI, DI, BP, а также диапазон адресов выводимой памяти (значения регистров и адресов должны быть разделены пробелом и указаны названия регистров). Предусмотреть использование процедур при разработке программы (см. ЛР выше). Организовать очистку экрана до вывода, после вывода нового дампа и после нажатия заданной клавиши выхода. По завершению программы выдается сообщение об ее успешном окончании. Адрес для вывода дампа может быть задан в программе или введен с клавиатуры (см. ЛР№7).
Формат вывода дампа памяти должен быть таким:
Адрес дампа: 0000:0200
Диапазон: 0200 – 037F
AX=00FE BX=0001 ...
CS=00FE ...
0200: 0A 0B DD 0A 0B DD 0A 0B DD 0A 0B DD 0B DD 0A 0B DD 0A 0B DD 0B DD 0A 0B
0218: 00 0C 01 ...
...
...
...
0368: 00 0C 01 ...
Оформить отчет по ЛР. Для оформления отчета студент должен знать или найти способ для вывода результата работы программы в текстовый файл. Лучше использовать копирование текста из окна командной строки (нежелательно снимать графическую картинку с экрана).
Методическое пояснение 1: Для ввода адреса вывода дампа можно использовать процедуру или фрагмент программы из 7-й ЛР.
Методическое пояснение 2: Для вывода сообщений можно использовать процедуру или фрагмент программы из 7-й ЛР.
Методическое пояснение 3: Вывод дампа выполняется в двойном цикле (команда LOOP). Нужно запоминать значение регистра СХ при входе во внутренний цикл и восстанавливать его после его завершения (стек или переменная).
45 Дополнительные требования к ЛР
Программа должна работать в циклическом режиме (листание дампа). Ввод адреса дампа с клавиатуры обязателен. Завершение цикла вывода дампов выполняется по знаку “*”. Выводить дамп в отдельном окне, ограниченном рамкой из псевдосимволов текстового режима. Предусмотреть ввод значений регистров данных микропроцессора (AX, BX, CX и DX).
46 Дополнительные требования к ЛР для сильных студентов
Выполнить все дополнительные требования. Предусмотреть прокрутку дампа вверх и вниз (по клавишам PGUP и PGDN). Обеспечить режим одновременного просмотра дампа памяти в символьном и шестнадцатеричном виде (как в файловых менеджерах, например FAR). Оптимизировать программу с грамотным использованием процедур. Для этого можно изменить число байт в шестнадцатеричном виде на экране (Например, до 16 байт). Изучить раздел методического пособия по резидентным программам.
47 Контрольные вопросы по 8-й ЛР
-
"Для чего нужна данная команда?". Для строки листинга указанной преподавателем?
-
Какую функцию выполняет команда LEA?
-
Что такое ближний (NEAR) и дальний (FAR) адрес?
-
Как задается ближний (NEAR) и дальний (FAR) адрес?
-
Какие способы вы можете назвать для очистки экрана (минимум 2)?
-
Как организовать в программе Ассемблера вложенный цикл (с помощью 2-х команд LOOP)?
-
Как при выводе дампа памяти проверить выход за границу сегмента?
-
Поясните назначение регистров IP и EIP? В чем их отличие?
Вопросы с учетом дополнительных требований.
-
В чем отличие между 16-ти и 32-ти разрядными приложениями?
-
Какие компиляторы нужно использовать для 16-ти и 32-ти разрядных приложений?
-
Что необходимо сделать для подключения собственного обработчика прерывания?
-
Что необходимо сделать для вызова старого обработчика прерывания, если Вы загрузили новый?
-
Какими способами можно проверить наличие в памяти собственного обработчика прерывания?
-
В чем специфика приложений под WINDOWS разработанных на языке Ассемблер?
48 Требования к оформлению отчета по ЛР №8
Отчет по ЛР № 8 должен содержать:
-
Титульный лист (Смотри образец ниже в конце этого документа).
-
Кратко – Цель и задание на ЛР.
-
Привести перечень собственных ошибок.
-
Блок-схема алгоритма программы.
-
Распечатка листинга программы в формате Ассемблера (.LST).
-
Распечатка результатов работы программы.
Более детальные требования к оформлению отчетов для всех лабораторных работ по Ассемблеру рассмотрены ниже. Смотрите требования к отчетам, расположенные ниже в разделе 12 данного документа.
49 Общие требования к ЛР по языку Ассемблера
Лабораторные работы выполняются студентами индивидуально. В тексте каждой программы в виде комментария должны быть отражены: ФИО, группа, номер варианта в группе и номер ЛР по общей нумерации в курсе СП. Результатом работы должна быть отлаженная программа (в виде *.COM файла или - *.EXE исполнимого модуля) и правильно оформленный отчет по каждой ЛР. В отдельных случаев указывается тип модуля ( *.COM или *.EXE). Нужно следовать, в том числе следующим требованиям (прочтите внимательно):
-
Программа должна быть скомпонована в виде .COM или *.EXE (6-ю ЛР – только ЕХЕ ).
-
Программа должна быть снабжена комментариями для пояснения ее работы, интерфейса процедур и логики работы (только на русском языке). Комментарии не должны (!) сопровождать каждую строку текста, а должны выделять блоки программы (как на блок-схеме), пояснять назначение процедур и их параметров.
-
Дополнительные требования к ЛР не являются обязательными, но учитываются в дифференцированном зачете по КР, рейтингах и при проведении зачета по курсу.
-
Блок-схема в отчетах должна учитывать все связи и процедуры программы, она составляется на достаточно детальном уровне, но не до уровня каждой команды. Для оформления блок-схем используются обозначения, рассмотренные в разделе № 21 методического пособия [2]. Блок-схемы необходимо оформлять в MS VISIO.
-
Каждая программа должна иметь заголовок (Псевдооператор TITLE), в котором указывается: группа, номер лабораторной работы, группа и ФИО студента.
-
При защите ЛР студент должен объяснить назначение и выполняемые действия для любого фрагмента собственной программы по листингу программы, указанному преподавателем. Студент в процессе выполнения ЛР должен научиться отвечать на контрольные вопросы каждой ЛР, используя полученные знания, литературу, документацию и экспериментальную проверку фактов при отладке.
-
При выполнении лабораторных работ студенты должны использовать отладчик (либо TD, либо интегрированный отладчик в QC или др. инструменты). Необходимо знать все основные операции для отладки и все данные, которые можно просмотреть в процессе отладки. Использование различных отладчиков поясняется в разделах 2, 3 и 4 методического пособия[2]. Во время демонстрации программы студент должен показать умение работать с отладчиком Ассемблера, при этом в отладчике должен высвечиваться исходный текст программы Ассемблера, а не результаты дизассемблирования отладчиком. Для этого необходимо указать специальные параметры при запуске компилятора и компоновщика [2].
-
Студент должен хорошо разбираться в листинге программы и своем отчете по ЛР.
-
Студент должен уметь находить ошибки с помощью отладчика для Ассемблера.
-
Студент обязан разработать и отладить программу самостоятельно!
50 Требования к оформлению отчетов для ЛР по Ассемблеру
По ЛР защищается по предоставлению работающей программы (на дискете или CD) и отчета (на бумажном носителе). Структура отчета дана в конце данного документа. Имейте в виду, что из-за сложного документа заголовки и оглавление нужно переоформить, если будете копировать (можно взять шаблон предыдущего семестра, там такие вносить исправления не нужно). Требования к отчету:
-
Отчет выполняется в текстовом редакторе MS WORD.
-
Титульный лист обязательно должен присутствовать. (Смотри образец ниже в конце этого документа).
-
Кратко – Задание и цель выполнения ЛР.
-
Перечень собственных ошибок зафиксированных при отладке. В отчете должны быть выделены не менее 3-х собственных ошибок. Ошибки фиксируются в таблице во время отладки программы ЛР.
-
Блок-схема алгоритма программы (в рукописном или машинном оформлении – MS VISIO). Блок-схемы процедур, повторяющихся в ЛР со старшими номерами ЛР можно не приводить.
-
Распечатка листинга программы в формате Ассемблера (.LST). Только в этом формате, простая распечатка исходного текста не допускается.
-
Распечатка результатов работы программы. Можно посредством перенаправления потока (>>) в файл, можно с помощью распечатки экрана или использованием копировщика экрана (ScrCapture) и др., но не вручную в WORD! Наиболее предпочтительным является вариант копирования текста результатов из окна командной строки (в окне командной строки: системное меню-> Изменить->Пометить->Enter, Для вставки в документ: Shift+Ins).
-
Для распечатки отчетов может быть использована двухсторонняя печать или печать двух страниц на одном листе (для экономии бумаги).
Методическое пояснение 1: Для подготовки отчетов, для уменьшения затрат времени, можно грамотно использовать шаблоны отчетов предыдущего семестра, не забыв изменить все данные: дисциплина, название ЛР и т.п. Эти шаблоны уже содержат оглавление, заголовки и т.д. Можно создать свой шаблон.
Для оформления отчетов в MS WORD нужно учитывать следующие требования к оформлению отчетов:
-
Текстовый редактор - MS WORD (не Open Office!),
-
Шрифт - Times New Roman.
-
Кегль шрифта - 12,
-
Интервал между строками - одинарный,
-
Способы форматирования текста – по ширине,
-
Размеры страниц – А4 (верх - 2 , низ - 2 , слева - 3 , справа - 2),
-
Содержание колонтитулов (вариант, группа, ФИО студента, № ЛР),
-
Способы рисования иллюстраций документа (Предпочтительнее MS Visio можно MS WORD),
-
Нумерация страниц – центр – верх.
51 Общие контрольные вопросы к лабораторным работам по Ассемблеру
-
Необходимо хорошо ориентироваться в листинге программы (распечатки компилятора). Нужно быть готовым ответить на вопрос: "Для чего нужна данная команда?" для любой строки листинга.
-
Какие основные функции выполняет отладчик (TD)?
-
Какие основные режимы выполнения программы в режиме отладки Вы знаете?
-
Зачем нужен компилятор и его настройки?
-
Зачем нужен редактор связей и его настройки?
-
Что необходимо сделать для создания программы в формате .COM – исполнимого файла?
-
Чем отличаются форматы *.com и *.exe?
-
Как задаются параметры процедуры на Ассемблере и как вызываются процедуры?
-
Что такое стек, и какие команды работы со стеком Вы знаете?
Эти вопросы могут быть заданы при защите любой ЛР из данного цикла!!!
52 Литература по ЛР СП
-
К-Г.Финогенов Основы языка Ассемблера.— М.: Радио и связь, 2001.— 288 с.
-
П.И.Рудаков, К.Г.Финогенов “Язык ассемблера: Уроки программирования” – М.: ДИАЛОГ-МИФИ, 2001 г., 640с.
-
К.Г. Финогенов “Самоучитель по системным функциям MSDOS”-М.,РиС,Энтроп, 1995 г. 382с.
-
Скэнлон Л. “Персональные ЭВМ IBM PC. Программирование на языке ассемблера.” -М.,РиС,1991 г.
-
Р.Джордейн “Справочник программиста персональных компьютеров типа IBM PC”- М.,ФиС, 1991г.
-
2. Список литературы по дисциплине СП, представленный на сайте (www.sergebolshakov.ru).
-
“ Методическое пособие для выполнения лабораторных работ по дисциплине СП ”, представленное на сайте (www.sergebolshakov.ru)..
53 Сроки представления и защиты заданий по курсу:
1 ЛР - 2 неделя семестра (справочники)
2 ЛР - 2 неделя семестра (командные файлы)
3 ЛР - 3 неделя семестра (Ассемблер)