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



       

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


E DS:00 23 01 25 00 00 00 (Нажмите Return) E DS:06 2A 2A 2A (Нажмите Return)

Первая команда записывает три слова (шесть байтов) в начало сегмента данных, DS:00. Заметьте, что каждое слово вводилось в обратной последовательности, так что 0123 есть 2301, a 0025 есть 2500. Когда команда MOV будет обращаться к этим cловам, нормальная последовательность будет восстанов лена и 2301 станет 0123, а 2500 - 0025. Вторая команда записывает три звездочки (***) для того, чтобы их можно было видеть впоследствии по команде D (Dump) - другого назначения эти звездочки не имеют. Введем теперь команды в сегмент кодов, опять начиная с адреса CS:100:

E CS:100 A1 00 00 03 06 02 00 E CS:107 A3 04 00 CB

Ассемблер для IBM PC. Глава 2 37

Теперь команды находятся в ячейках памяти от CS:100 до CS:10A. Эти команды можно выполнить как это делалось ранее. На рис. 2.3 показаны все шаги, включая команды E. На экране дисплея должны появиться такие же результаты, хотя адреса CS и DS могут различаться. Для пересмотра информации в сегменте данных и в сегменте кодов введите команды D (Dump) соответственно:

для сегмента данных: D DS:000 (Return) для сегмента кодов: D CS:100 (Return)

Сравните содержимое обоих сегментов с тем, что вводилось и с изображенным на рис. 2.3. Содержимое памяти от DS:00 до DS:08 и от CS:100 до CS:10A должно быть идентично рис. 2.3. Теперь введите R для просмотра содержимого регистров и флагов и для отображения первой команды. Регистры содержат те же значения, как при старте первого примера. Команда ото- бразится в виде:

13C6:0100 A10000 MOV AX,[0000]

Так, как регистр CS содержит 13C6, то CS:100 содержит первую команду A10000. Отладчик интерпретирует эту команду как MOV и определяет ссылку к первому адресу [0000] в сегменте данных. Квадратные скобки необходимы для указания ссылки к адресу памяти, а не к непосредственным данным.

------------------------------------------------------------ ------------------------------------------------------------ Рис. 2.3. Трассировка машинных команд




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