
- •Курский государственный технический университет Кафедра конструирования и технологии эвс
- •Програмирование на языке ассемблера Методические указания
- •Введение
- •Эмулятор ос cp/m
- •Методические указания Контрольные вопросы
- •Лабораторная работа 2 "Исследование отладчика sid. Программирование в кодах 8080".
- •Лабораторная работа 3 "Линейное сложение и вычитание многобайтовых чисел ".
- •Цель работы
- •Лабораторная работа 5 "Ассемблирование и загрузка программ на языке ассемблера 8080". Цель работы
- •Лабораторная работа 6 "Вывод информации на экран дисплея с использованием системных вызовов ос cp/m".
- •Лабораторная работа 7 "Ввод информации с клавиатуры с использованием системных вызовов ос cp/m".
- •Лабораторная работа 8 "Исследование программ. Дизассемблирование".
- •Приложение 1 Кодировка команд ассемблера 8080 коды команд микропроцессоров i8080/i8085
- •Приложение 3 Ассемблер asm и макроассемблер mac. Справочные данные
- •Приложение 4 Сведения об ос cp/m
- •1.Резидентные команды
- •2. Характеристики dos
- •3. Обращение к dos. Входная и выходная информация.
- •Функции dos для управления консолью.
- •Приложение 5 Кодировки символов кодировка символов
Лабораторная работа 7 "Ввод информации с клавиатуры с использованием системных вызовов ос cp/m".
Приобретение навыков использования системных вызовов операционных систем на примере ОС CP/M.
Приобретение навыков написания программ управления консолью ввода в текстовом режиме.
Подготовка к работе
Повторить темы "Подпрограммы и стек в 8080". Изучить системные вызовы ОС CP/M, связанные с вводом информации с консоли. Обратить внимание на таблицы кодировок символов .
Вопросы для самоконтроля
Почему для ввода информации с клавиатуры выделены 2 базовые системные функции?
Как завершается ввод символов в буфер ввода?
Какие управляющие коды используются в системных функциях ввода ОС CP/M?
Программа работ
Получить у преподавателя исходные данные:
- количество и вид программ для отладки - ввод символа, эхо-ввод символа, ввод последовательности символов, ввод и редактирование символов в буфере ввода и т.п.
Написать простейшую программу для ввода символа с клавиатуры.
Набрать текст программы, используя встроенный редактор файлового менеджера NC (VC,FAR). Присвоить программе имя и расширение ".ASM".
Загрузить эмулятор
Ассемблировать программу с помощью макроассемблера MAC. Убедиться, что ассемблирование прошло без ошибок.
Загрузить результат ассемблирования, используя возможности отладчика.
Выполнить программу и наблюдать за соответствием нажатой клавиши и кодом введенного символа.
Написать и отладить прочие заданные программы ввода, используя ранее написанный примитив для ввода очередного символа.
Отчет должен содержать:
- листинг текста программ с комментариями
- описание структуры данных, используемых в программе
Методические указания
Для написания программ необходимо изучить системный вызовы ________ ОС CP/M, описанные в приложении. Системный вызов для опроса состояния клавиатуры предшествует системному вызову для ввода символа с клавиатуры.
Контрольные вопросы
Можно ли вводить символы так, чтобы нажатие клавиши не приводило к автоматическому появлению символа на экране?
Что такое буфер ввода и почему его используют?
Для чего введена функция опроса состояния клавиатуры?
Каким способом осуществляется редактирования данных в буфере?
Как задействовать клавиши управления курсором для редактирования введенных данных?
Лабораторная работа 8 "Исследование программ. Дизассемблирование".
Приобретение навыков исследования программ, существующих только в виде исполнимых модулей. Закрепление навыков работы с отладчиками.
Подготовка к работе
Повторить общую тему "Система команд 8080". Изучить оющие особенности системных вызовов ОС CP/M. Обратить внимание на таблицы кодировок символов .
Вопросы для самоконтроля
Для чего может понадобиться исследование кодов программ?
Какие директивы отладчика удобны для выявления наличия символьных последовательностей в исследуемых программах?
Какими директивами отладчика можно воспользоваться для восстановления исходного текста программ?
Программа работ
Получить у преподавателя исходные данные:
- программу, подлежащую исследованию.
Загрузить эмулятор
Запустить исследуемую программу и попытаться выявить основные особенности ее функционирования:
- назначение программы
- наличие встроенной подсказки
- символьные строки, содержащиеся в коде программы
- реакцию программы на типичные управляющие коды
Загрузить исследуемую программу, используя возможности отладчика.
Просмотреть содержимое пограммы и определить местоположение символьных строк, блоков данных, блоков кодов.
Попытаться отыскать наличие вызовов системных функций
Дизассемблировать выявленные блоки кодов
Отчет должен содержать:
- структуру исследумой программы в виде выявленных символьных строк, блоков данных, блоков кодов. Для каждой выявленной единицы указывается диапазон адресов ее расположения.
- список выявленных системных вызовов с указанием адреса и наименования вызова
- листинг дизассемблированных кодовых блоков (по указанию преподавателя)
- список выявленных управляющих кодов и реакцию на них программы
- выводы о назначении программы и пригодности ее для восстановления логики работы и исходного текста.
Методические указания
Программы, предлагаемые для исследования, не содержат специальных ухищрений, препятствующих их исследованию.
Контрольные вопросы
Возможно ли создание программы автоматического дизассемблирования произвольной программы?
Какие программые конструкции затрудняют исследование программы?
Всегда ли возможно обнаружить директивой D отладчика текстовые сообщения, которые явно присутствую при запуске и эксплуатации этой пограммы?
Можно ли скрыть присутствие обращений к системным функциям в программе?
Какие результаты дает применения специальной программы дизассемблирования DISASM.COM?