Приложение 1 кодировка команд ассемблера 8080

КУРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

Кафедра конструирования и технологии ЭВС

МЕТОДИЧЕСКИЕ УКАЗАНИЯ

К лабораторным работам

«Программирование и отладка программ на языке ассемблера i8080»

По дисциплине “Системное программирование»

Курск – 2006 г.

Составитель: В.Н. Усенков

УДК _________

ББК _________

Д____

Рецензент

__________________________________________________

Программирование и отладка программ на языке ассемблера i8080: Методические указания к лабораторным работам по дисциплине «Системное программирование» / Курск. гос. техн. ун-т.; Сост.: В.Н. Усенков, Курск, 2006. ___ с.

Излагаются методические указания к выполнению лабораторных работ по курсу Системное программирование. Описывается порядок выполнения лабораторных работ. В ПРИЛОЖЕНИЯХ приводятся справочные данные, необходимые для эффективного выполнения работ. Работа предназначена для студентов специальности 220500 (210202) «Проектирование и технология

электронно-вычислительных средств»

Ил. , библиограф.: 3 назв.

Текст печатается в авторской редакции

ИД № 06430 от 10.12.01.

Подписано в печать . Формат_________. Печать офсетная.

Усл. печ. л. . Уч.-изд. л. . Тираж ___ экз. Заказ . Бесплатно.

Курский государственный технический университет.

Издательско-полиграфический центр Курского государственного

технического университета. 305040 Курск, ул. 50 лет Октября, 94.

ПРОГРАМИРОВАНИЕ НА ЯЗЫКЕ АССЕМБЛЕРА

Методические указания

к лабораторным работам по дисциплине

Системное программирование

Рецензент:

Редактор:

СОДЕРЖАНИЕ

ВВЕДЕНИЕ

ЭМУЛЯТОР ОС CP/M

ЛАБОРАТОРНАЯ РАБОТА 1 РАБОТА В ОС CP/M

ЛАБОРАТОРНАЯ РАБОТА 2 ИССЛЕДОВАНИЕ ОТЛАДЧИКА SID. ПРОГРАММИРОВАНИЕ В КОДАХ 8080.

ЛАБОРАТОРНАЯ РАБОТА 3 ЛИНЕЙНОЕ СЛОЖЕНИЕ И ВЫЧИТАНИЕ МНОГОБАЙТОВЫХ ЧИСЕЛ .

ЛАБОРАТОРНАЯ РАБОТА 4 ЦИКЛИЧЕСКОЕ СЛОЖЕНИЕ И ВЫЧИТАНИЕ МНОГОБАЙТОВЫХ ЧИСЕЛ .

ЛАБОРАТОРНАЯ РАБОТА 5 АССЕМБЛИРОВАНИЕ И ЗАГРУЗКА ПРОГРАММ НА ЯЗЫКЕ АССЕМБЛЕРА 8080.

ЛАБОРАТОРНАЯ РАБОТА 6 ВЫВОД ИНФОРМАЦИИ НА ЭКРАН ДИСПЛЕЯ С ИСПОЛЬЗОВАНИЕМ СИСТЕМНЫХ ВЫЗОВОВ ОС CP/M.

ЛАБОРАТОРНАЯ РАБОТА 7 ВВОД ИНФОРМАЦИИ С КЛАВИАТУРЫ С ИСПОЛЬЗОВАНИЕМ СИСТЕМНЫХ ВЫЗОВОВ ОС CP/M.

ЛАБОРАТОРНАЯ РАБОТА 8 ИССЛЕДОВАНИЕ ПРОГРАММ. ДИЗАССЕМБЛИРОВАНИЕ.

ПРИЛОЖЕНИЕ 1 КОДИРОВКА КОМАНД АССЕМБЛЕРА 8080

ПРИЛОЖЕНИЕ 2 ОТЛАДЧИКИ DDT И SID. СПРАВОЧНЫЕ ДАННЫЕ

ПРИЛОЖЕНИЕ 3 АССЕМБЛЕР ASM. СПРАВОЧНЫЕ ДАННЫЕ

ПРИЛОЖЕНИЕ 4 СВЕДЕНИЯ ОБ ОС CP/M

ПРИЛОЖЕНИЕ 5 КОДИРОВКИ СИМВОЛОВ

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

ВВЕДЕНИЕ

Для практического освоения системы команд любого микропроцессора необходимы средства, позволяющие разрабатывать и выполнять программы, самостоятельно написанные на языке ассемблера данного микропроцессора. В лабораторных работах исследуется программирование микропроцессора I8080(580ВМ80). Выбор 8080 обусловлен следующими факторами:

— система команд проста и удобна для начального изучения

— имеется обширная литература, посвященная программированию для 8080

— средства для разработки и отладки доступны для некоммерческого использования

— переход к работе с другими микропроцесорами представляется несложным

Традиционно, программные продукты для 8080 поддерживались следующими ОС:

— ОС CP/M Digital Research

— ОС ISIS-II Intel

В лабораторных работах используются программные эмуляторы ОС CP/M, выполняемые на IBM PC компьютерах.

ЭМУЛЯТОР ОС CP/M

Эмулятор 80cpm.exe рассчитан на исполнение на PC под управлением ДОС; при некоторых условиях возможна работа в среде Win 95/98. Эмулируются большинство возможностей CP/M; файловая система не поддерживает низкоуровневые системные вызовы; порты ввода/вывода недоступны; объем памяти — 64К.

Из программных продуктов, поддерживаемых CP/M, доступны по крайней мере следующие:

— отладчик SID;

— макроассемблер MAC;

— ассемблер ASM

Написание текстов программ с помощью текстовых редакторов CP/M возможно, но нецелесообразно. Рекомендуется тексты обрабатывать встроенным текстовым редактором ДОС файловых менеджеров FAR, VC, NC.

Лабораторная работа 1 Работа в ОС CP/M

Цель работы:

изучение возможностей ОС CP/M и подготовка к проектированию программ на языке 8080.

Подготовка к работе

Изучить основные особенности CP/M.

Вопросы для самоконтроля

Насколько подобны интерфесные особенности CP/M и MS DOS при запуске последней в режиме командной строки?

Насколько подобны структурные особенности CP/M и MS DOS?

Как запускаются на исполнение программы в среде CP/M?

Программа работ

Подготовить рабочую папку для выполнения эмулятора и сохранения рабочих файлов

Записать в рабочую папку следующие программы:

80cpm.exe

z80mu.exe

sid.com

sid3.com

mac.com

test1.com

Загрузить эмулятор 80cpm.exe.

Проверить функционирование встроенных команд ОС CP/M

dir, ren, save, type

Запустить CP/M программу TEST1.COM и наблюдать процесс ее выполнения.

Запустить отладчик SID. Найти корректный способ возврата в ОС CP/M.

Найти корректный способ выхода из эмулятора в ОС CP/M.

Методические указания

Контрольные вопросы

Какие области памяти используются ОС?

С какого адреса загружается программа?

Какой объем памяти доступен для использования прикладными программами?

Лабораторная работа 2 Исследование отладчика SID. Программирование в кодах 8080.

Цель работы:

Подготовка к работе

Изучить основные особенности отладчика SID.

Вопросы для самоконтроля

Как завершить выполнение отладчика и вернуться в CP/M?

С какого адреса после загрузки отладчика можно располагать отлаживаемые пограммы?

Программа работ

Загрузить эмулятор

Проверить функционирование директивы D отладчика — вывод содержимого области памяти в шестнадцатеричном и символьном виде на экран:

D

D100

D100,120

Проверить функционирование директивы S отладчика — просмотр и модификация заданных ячеек памяти

S100

Проверить функционирование директивы L отладчика — вывод содержимого области памяти в мнемоническом виде (встроенный дизассемблер) на экран

L100

Проверить функционирование директивы X отладчика — вывод содержимого регистров общего назначения (РОН) 8080 в шестнадцатеричном виде на экран

X

Ввести начиная с адреса 0100H код команды межрегистровой пересылки MOV A,B

S100 ??

Проверить функционирование директивы G — запуск программы с точками останова на примере ранее введенной команды:

G100,101.

Ввести начиная с адреса 0100H код команды считывания ячейки памяти LDA 0840H

S100

100 ?? 3A

101 ?? 40

102 ?? 08

103 ?? .

Просмотреть директивой D введенные коды:

D100,103

Просмотреть директивой L введенную. команду в символическом обозначении:

L100,103

Выполнить введенную команду директивой G:

G100,103

Наблюдать содержимое аккумулятора:

X

Проверить содержимое ячейки 0840Н на равенство содержимому аккумулятора:

D840

Изменить директивой S содержимое ячейки 0840 и повторить исследование команды

LDA 0840H

Исследовать аналогичным образом команды

— записи в ячейку памяти

— загрузки байтовой константы в регистр

— загрузки двухбайтовой константы в регистровую пару

— отдельные логические команды

— команду XCHG

— команды инкрементирования и декрементирования регистров и регистровых пар.

Написать программу, считывающую в регистр С содержимое ячейки памяти 0840H с использованием косвенной адресации.

Ввести коды команд директивой S начиная с адреса 100H

Проверить правильность набора директивой L

Выполнить программу директивой Gadr,ostanov1

Убедиться в правильности функционирования программы.

Ранее написанную программу ввести начиная с адреса 0100H более удобным способом — с помощью директивы A.

Проверить правильность набора директивой L.

Методические указания

Для выяснения кодов команд 8080 воспользуйтесь таблицей из ПРИЛОЖЕНИЯ

Для выяснения директив отладчика воспользуйтесь таблицей из ПРИЛОЖЕНИЯ

Контрольные вопросы

Какими способами сохраняется и восстанавливается рабочая область памяти при отладке?

Какие директивы отладчика позоляют

Лабораторная работа 3 Линейное сложение и вычитание многобайтовых чисел .

Цель работы:

Подготовка к работе

Повторить тему Арифметические команды 8080. Обратить внимание на особенности формирование флага переноса.

Вопросы для самоконтроля

Каков порядок выбора байтов для сложения (вычитания)- от младшего к старшему, или наоборот?

Влияет ли результат сложения (вычитания) предудущих байтов на шаге обработки текущих байтов операндов?

Программа работ

Продумать алгоритм сложения 3-х байтовых чисел. Записать текст программы, используя 3-х кратное повторение стандартного сложения двух ячеек памяти.

Загрузить эмулятор

Загрузить отладчик

Ввести программу сложения, используя директиву А отладчика

Ввести подготовленный тестовый пример

Сохранить рабочую область памяти в файл, включая программный код и тестовые данные.

Отметить в программе узловые точки и использовать их адреса как точки останова

Запустить программу на выполнение, останавливаясь в опорных точках и контролируя правильность выполнения

По завершении программы проверить результат сложения.

Выполнить аналогичным образом вычитание 3-хбайтовых чисел.

По достижении точки останова необходимо записывать содержимое регистров и контролируемых ячеек памяти для последующего отображения протокола отладки в отчете.

Отчет должен содержать:

— текст программы с комментариями

— протокол отладки

— несколько тестовых примеров, демонстрирующих характерные особенности многобайтового сложения (вычитания)

Методические указания

Особое внимание следует обратить на размещение данных. Входные данные и результат следует располагать в ячейках памяти. При этом удобно, чтобы результат не сохранялся на месте одного из операндов. Порядок следования байтов должен быть одинаков для операндов и результата. Все используемые ячейки памяти должны быть подробно описаны.

Опорные точки следует выбирать так, чтобы при запуске очередного программного фрагмента не могло произойти неконтролируемое выполнение кода. Это означает, в частности, что любая команда ветвления должна привести к точке останова по каждой из возможных траекторий выполнения.

Опорные точки в пределах линейных участков программы следует выбирать так, чтобы при останове можно было проанализировать правильность выполненного кода, контролируя содержимое регистров и обновляемых ячеек памяти.

Контрольные вопросы

Одинаковы ли команды сложения (вычитания) на первом шаге обработки операндов и на последующих шагах?

Как расположить данные в памяти, чтобы можно было удобно вывести все их на экран одновременно с помощью единственной директивы D отладчика?

Каковы основные требования к комментариям, поясняющим текст программы?

Какой должна быть длина результата при сложении 3-хбайтовых чисел?

Какие характерные особенности многобайтового сложения (вычитания) должны учитывать тестовые примеры?

Лабораторная работа 4 Циклическое сложение и вычитание многобайтовых чисел .

Цель работы

Изучение команд ветвления и методов адресации 8080.

Подготовка к работе

Повторить темы Арифметические команды 8080, Команды ветвления 8080, Методы адресации 8080. Обратить внимание на особенности формирования флагов и их восприятие командами ветвления.

Вопросы для самоконтроля

Каков порядок выбора байтов для сложения (вычитания)- от младшего к старшему, или наоборот?

Влияет ли результат сложения (вычитания) предудущих байтов на шаге обработки текущих байтов операндов?

Какие объекты микропроцессорной структуры пригодны для хранения счетчика циклов?

Какие методы адресации могут использоваться при обработке операндов переменной длины?

Программа работ

Получить у преподавателя исходные данные:

— количество байтов в операндах

— вид арифметической операции — сложение или вычитание

Продумать алгоритм сложения N-байтовых чисел. Записать текст программы, используя циклическое повторение сложения двух ячеек памяти.

Загрузить эмулятор

Загрузить отладчик

Ввести программу сложения, используя директиву А отладчика

Ввести подготовленный тестовый пример

Сохранить рабочую область памяти в файл, включая программный код и тестовые данные.

Отметить в программе узловые точки и использовать их адреса как точки останова

Запустить программу на выполнение, останавливаясь в опорных точках и контролируя правильность выполнения

По завершении программы проверить результат сложения.

По достижении точки останова необходимо записывать содержимое регистров и контролируемых ячеек памяти для последующего отображения протокола отладки в отчете.

Отчет должен содержать:

— текст программы с комментариями

— протокол отладки

— несколько тестовых примеров, демонстрирующих характерные особенности многобайтового сложения (вычитания)

Методические указания

Особое внимание следует обратить на выбор объектов для хранения счетчика циклов и указателей на операнды и результат. Входные данные и результат следует располагать в ячейках памяти. При этом возможно (хотя и не желательно), чтобы результат сохранялся на месте одного из операндов. Порядок следования байтов должен быть одинаков для операндов и результата. Все используемые ячейки памяти должны быть подробно описаны.

Опорные точки следует выбирать так, чтобы при запуске очередного программного фрагмента не могло произойти неконтролируемое выполнение кода. Это означает, в частности, что любая команда ветвления должна привести к точке останова по каждой из возможных траекторий выполнения.

Опорные точки в пределах линейных участков программы следует выбирать так, чтобы при останове можно было проанализировать правильность выполненного кода, контролируя содержимое регистров и обновляемых ячеек памяти.

Контрольные вопросы

Одинаковы ли условия сложения (вычитания) на первом шаге обработки операндов и на последующих шагах?

Сколько указателей необходимо использовать при раздельном задании операндов и результата?

Можно ли в качестве счетчика циклов использовать аккумулятор?

Какой должна быть длина результата при сложении 3-хбайтовых чисел?

Какие характерные особенности многобайтового сложения (вычитания) должны учитывать тестовые примеры?

Какие методы адресации подразумевает программа циклического сложения?

Лабораторная работа 5 Ассемблирование и загрузка программ на языке ассемблера 8080.

Цель работы

Изучение методов ассемблирования и загрузки программ, написанных на языке 8080. Приобретение навыков использования типовых ассемблеров на примере программы-ассемблера MAC.

Подготовка к работе

Повторить темы Ассемблирование программ, Загрузка программ для исполнения. Обратить внимание на псевдоманды ассемблера, направленные на работу с символическими именами..

Вопросы для самоконтроля

Какая псевдокоманда ассемблера задает начальный адрес размещения кода и данных?

Как задать метки и какие команды ассемблера могут их использовать?

Как завершается текст программы на языке ассемблера?

Программа работ

Получить у преподавателя исходные данные:

— количество байтов в операндах

— вид операции — сложение , вычитание, набор логических побитовых операций и т.п.

Продумать алгоритм выполнения программы. Набрать текст программы, используя встроенный редактор файлового менеджера NC (VC,FAR). Присвоить программе имя и расширение .ASM.

Загрузить эмулятор

Ассемблировать программу с помощью макроассемблера MAC. Убедиться, что ассемблирование прошло без ошибок.

Загрузить результат ассемблирования, используя возможности отладчика.

Ввести подготовленный тестовый пример

Отметить в программе узловые точки и использовать их адреса как точки останова

Запустить программу на выполнение, останавливаясь в опорных точках и контролируя правильность выполнения

По завершении программы проверить результат сложения.

По достижении точки останова необходимо записывать содержимое регистров и контролируемых ячеек памяти для последующего отображения протокола отладки в отчете.

Отчет должен содержать:

— листинг текста программы с комментариями

— протокол отладки

— тестовый пример, демонстрирующий характерные особенности отлаживаемой программы.

Методические указания

Особое внимание следует обратить на выбор объектов для хранения счетчика циклов и указателей на операнды и результат. Входные данные и результат следует располагать в ячейках памяти. При этом возможно (хотя и не желательно), чтобы результат сохранялся на месте одного из операндов. Порядок следования байтов должен быть одинаков для операндов и результата. Все используемые ячейки памяти должны быть подробно описаны.

Опорные точки следует выбирать так, чтобы при запуске очередного программного фрагмента не могло произойти неконтролируемое выполнение кода. Это означает, в частности, что любая команда ветвления должна привести к точке останова по каждой из возможных траекторий выполнения.

Опорные точки в пределах линейных участков программы следует выбирать так, чтобы при останове можно было проанализировать правильность выполненного кода, контролируя содержимое регистров и обновляемых ячеек памяти.

Краткое описание макроассемблера имеется в приложении.

Контрольные вопросы

Какие файлы формируются макроассемблером MAC при трансляции?

Как определить наличие ошибок в тексте программы?

Какие ошибки макроассемблер способен идентифицировать, а какие нет?

Чем удобны псевдокоманды резервирования памяти и задания констант?

Какой из файлов — продукт работы ассемблера — может быть использован для загрузки кода отлаживаемой программы?

Какие шаги позволят получить исполнимый код программы?

Лабораторная работа 6 Вывод информации на экран дисплея с использованием системных вызовов ОС CP/M.

Приобретение навыков использования системных вызовов операционных систем на примере ОС CP/M.

Приобретение навыков написания программ управления консолью вывода в текстовом режиме.

Подготовка к работе

Повторить темы Подпрограммы и стек в 8080. Изучить системные вызовы ОС CP/M, связанные с выводом информации на консоль. Обратить внимание на таблицы кодировок символов ASCII, КОИ-8, альтернативную кодировку IBM PC.

Вопросы для самоконтроля

Как выполняется команда вызова подпрограмм 8080?

Каковы главные требования к подпрограмме?

Какие команды 8080 позволяют инициализировать указатель стека?

Программа работ

Получить у преподавателя исходные данные:

— количество и вид программ для отладки — вывод символа, вывод символьной строки, вывод символа в шестнадцатеричном виде, вывод последовательности байтов в шестнадцатеричном виде и т.п.

Написать простейшую программу для вывода символа с кодом из диапазона 31H…39H.

Набрать текст программы, используя встроенный редактор файлового менеджера NC (VC,FAR). Присвоить программе имя и расширение .ASM.

Загрузить эмулятор

Ассемблировать программу с помощью макроассемблера MAC. Убедиться, что ассемблирование прошло без ошибок.

Загрузить результат ассемблирования, используя возможности отладчика.

Выполнить программу и наблюдать за появлением на экране символа, соответствующего выбранному коду.

Написать программу вывода символьной строки, используя ранее написанный примитив для вывода очередного символа (символьная строка — последовательность символов, расположенных последовательно друг за другом; признаком завершения строки является специальный символ, например ‘$’ 24H или 00H).

Ассемблировать, загрузить и отладить указанную программу.

Отчет должен содержать:

листинг текста программ с комментариями

— описание структуры данных, используемых в программе

Методические указания

Для написания программ необходимо изучить системный вызов 01 ОС CP/M, описанный в приложении.

При работе с символьными строками возможно два способа определения конца символьной последовательности:

— запись специального символа — признака окончания строки

— задание длины строки в явном виде.

В качестве символа, завершающего строку, в ОС CP/M выбран символ 24H (см. описание функции __), однако удобнее использовать код 00.

При выводе байта в шестнадцатеричном виде используются 2 вызова системной функции 1: сначала выводится символ, соответствующий старшей тетраде (старшие 4 бита выводимого байта), а затем выводится символ, соответствующий младшей тетраде (младшие 4 бита выводимого байта).

Контрольные вопросы

Обязательна ли инициализация стека перед вызовом системной функции?

Почему не совсем удобен выбор символа — признака окончания символьной строки, принятый в CP/M?

Как можно преобразовать тетраду в код символа шестнадцатеричного алфавита?

Каким еще способом можно вывести в ОС CP/M символьную строку на экран?

Можно ли вывести на экран дисплея символы русского алфавита?

Что такое управляющие символы?

Как использовать управляющие символы для улучшения читабельности выводимой информации?

Объяснить принцип методики управления выводом на экран, именуемой метод ESC — последовательностей.

Лабораторная работа 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?

ПРИЛОЖЕНИЕ 1 Кодировка команд ассемблера 8080

Assembler | С чего начать его изучение в 2018 году? | Timcore


Похожие статьи.

Понравилась статья? Поделиться с друзьями: