ВУЗ:
Составители:
ассемблирования на экране. Поэтому не всегда возможно определить
границы подпрограмм или действия команд переходов из-за ограни-
ченного размера окна визуализации.
Основная трудность при дизассемблировании появляется при
разделении объектной программы на собственно команды и данные,
используемые при выполнении этой программы.
Каждый байт программы может быть интерпретирован различными
способами. Например, десятичный код байта 118 может быть рассмотрен
как код команды "Останов", как данное, как совокупность битов
01110110 или как двоично-десятично кодированное число 76.
В случае дизассемблирования программ, записанных в ПЗУ, можно
предположить, что основное содержание составляют команды программы,
а данные могут использоваться в виде констант, которые не должны
встречаться в командах записи в память в пределах адресов ячеек ПЗУ.
При работе ДА с ОЗУ, в принципе, каждый байт программы может
рассматриваться и как команда, и как данное.
Поэтому при отсутствии документации или указания о том, имеются
ли в программе данные, или все коды - это команды, правильность
восстановленной ассемблерной программы определяется анализом
пользователя. Однако, построение каких-либо общих методов
семантического анализа для полной автоматизации этого процесса
практически неосуществимо.
Пример различной интерпретации содержимого памяти в зависимости
от разного стартового адреса показан на рис.1.
Рис.1. Интерпретация содержимого памяти.
Страницы
- « первая
- ‹ предыдущая
- …
- 6
- 7
- 8
- 9
- 10
- …
- следующая ›
- последняя »