Консультация № 191722
10.11.2017, 19:39
0.00 руб.
1 5 1
Здравствуйте! Прошу помощи в следующем вопросе:
что за числа появляются в окне отладчика AFD, между полями "командной строки" и "ассемблера"? Лучше все же посмотреть прилагаемый файл со screenshot-ами.
Прикрепленные файлы:
364bf41f9847a060bd43f217732f16069c7a59f2.doc

Обсуждение

давно
Посетитель
7438
7205
10.11.2017, 19:54
общий
10.11.2017, 19:58
Адресаты:
Это содержимое памяти, адрес которой используется в команде по текущему адресу.
В данном случае, содержимое ES:[DI]

Подробнее:
1) Вы не используете альтернативный экран, поэтому в буфере экрана будет текущее изображение, выводимое отладчиком
Другими словами, так Вы рожицу не увидите, отладчик затрет своим экраном
2) Итак, что имеем. ES адресует сегмент памяти 0B800h, DI = 0, т.е. адрес самого первого слова в видеобуфере.
В левом верхнем углу находится буковка A = 41h, цвет (атрибут) - белым по черному, т.е. = 07h
3) Вот и получается, что по адресу ES:[DI] должно быть 0741h, что мы и видим...
4) Чтобы вывод был в альтернативный экран, надо набрать команду MO A ON, смотреть его содержимое - F6
5) Есть же помощь - F4

Думаю, уже догадались, меняя содержимое регистра DI, Вы смотрите содержимое разных слов, соответствующие разным символам на экране
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
давно
Старший Модератор
31795
6196
13.11.2017, 11:23
общий
Адресаты:

Набираем команду М2 ES:0
Экран изменится после команды mov es,ax

и после этого должно все стать на свои места.
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

давно
Посетитель
401455
7
13.11.2017, 20:11
общий
Адресаты:
СПАСИБО! Вы очень доходчиво объяснили вопрос в сообщении от 10.11.2017
Не знаю как поступают у вас на форуме. Если в отношении меня, то консультацию по данному вопросу можно закрыть. Если вопрос интересен кому-либо еще - на ваше усмотрение ...

С уважением, kerenskyaf
давно
Посетитель
7438
7205
14.11.2017, 11:29
общий
это ответ
Здравствуйте, kerenskyaf!

Указанные Вами числа - это содержимое памяти, адрес которой используется в команде по текущему адресу.
В данном случае, содержимое ES:[DI]

Подробнее:
1) Вы не используете альтернативный экран, поэтому в буфере экрана будет текущее изображение, выводимое отладчиком
Другими словами, так Вы рожицу не увидите, отладчик затрет своим экраном
2) Итак, что имеем. ES адресует сегмент памяти 0B800h, DI = 0, т.е. адрес самого первого слова в видеобуфере.
В левом верхнем углу находится буковка A = 41h, цвет (атрибут) - белым по черному, т.е. = 07h
3) Вот и получается, что по адресу ES:[DI] должно быть 0741h, что мы и видим...
4) Чтобы вывод был в альтернативный экран, надо набрать команду MO A ON, смотреть его содержимое - F6
5) Есть же помощь - F4

Меняя содержимое регистра DI, Вы смотрите содержимое разных слов, соответствующие разным символам на экране

Как правильно заметил в мини-форуме Константин Николаевич, посмотреть содержимое любого участка памяти,
в данном случае, видеобуфер, начиная с адреса ES:[0], можно в одном из двух окон, например в M2.
Для этого надо дать команду M2 ES:0
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
давно
Посетитель
7438
7205
14.11.2017, 11:31
общий
Адресаты:
У нас на форуме на каждый вопрос должен быть ответ. Мини-форум для обсуждения и дополнительных вопросов.
Раз все понятно, оформил, как ответ на вопрос
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
Форма ответа