Ассемблер и программирование для IBM PC



       

ГЛАВА 4. Ассемблирование и выполнение программ - часть 7


Start Stop Length Name

00000H 00015H 0016H CODESG 00020H 0007FH 0060H STACKSG

Ассемблер для IBM PC. Глава 4 85

Для ответа на четвертый запрос - нажмите Return, что укажет компановщику LINK принять остальные параметры по yмолчанию. Описание библиотечных средств можно найти в руководстве по DOS. На данном этапе единственной возможной ошибкой может быть yказание неправильных имен файлов. Исправить это можно только перезапуском программы LINK. В приложении 4 перечис лен ряд pежимов компановщика LINK.

ВЫПОЛНЕНИЕ ПРОГРАММЫ ------------------------------------------------------------

После ассемблирования и компановки программы можно (наконец-то!) выполнить ее. На рис. 4.2 приведена схема команд и шагов для ассемблирования, компановки и выполнения программы EXASM1. Если EXE-файл находится на дисководе B, то выполнить ее можно командой:

B:EXASM1.EXE или B:EXASM1

DOS предполагает, что файл имеет тип EXE (или COM), и загружает файл для выполнения. Но так как наша программа не вырабатывает видимых результатов, выполним ее трассировкой под отладчиком DEBUG. Введите

DEBUG B:EXASM1.EXE

В результате DOS загрузит программу DEBUG, который, в свою очередь, загрузит требуемый EXE-модуль. После этого отладчик выдаст дефис (-) в качестве приглашения. Для просмотра сегмента стека введите

D SS:0

Эту область легко узнать по 12-кратному дублированию константы STACKSEG. Для просмотра сегмента кода введите

D CS:0

Сравните машинный код с листингом ассемблера:

1E2BC050B823010525008BD803 ...

Непосредственные операнды, приведенные в листинге ассемблирования как 0123 и 0025 в памяти представлены в виде 2301 и 2500 соответственно. В данном случае листинг ассемблирования не вполне соответствует машинному коду. Все двухбайтовые адреса (слова) и непосредственные операнды в машинном коде хранятся в обратном порядке.

Ассемблер для IBM PC. Глава 4 86

Введите R для просмотра содержимого регистров и выполните прогpамму с помощью команды T (трассировка). Обратите внимание на воздействие двух команд PUSH на стек - в вершине стека теперь находится содержимое регистра DS и нулевой адрес. В процессе пошагового выполнения программы обратите внимание на содержимое регистров. Когда вы дойдете до команды RET, можно ввести Q (Quit - выход) для завершения работы отладчика. Используя команду dir, можно проверить наличие ваших файлов на диске:




Содержание  Назад  Вперед