Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RFpro.ru: Ассемблер? Это просто! Учимся программировать


РАССЫЛКИ ПОРТАЛА RFPRO.RU

Лучшие эксперты в разделе

Коцюрбенко Алексей aka Жерар
Статус: Мастер-Эксперт
Рейтинг: 599
∙ повысить рейтинг »
Evgen aka Chuma
Статус: 6-й класс
Рейтинг: 52
∙ повысить рейтинг »
quirck
Статус: 1-й класс
Рейтинг: 0
∙ повысить рейтинг »

∙ Assembler

Номер выпуска:1680
Дата выхода:04.01.2018, 19:45
Администратор рассылки:Лысков Игорь Витальевич (Старший модератор)
Подписчиков / экспертов:52 / 18
Вопросов / ответов:1 / 1

Консультация # 192229: Здравствуйте, уважаемые эксперты! Спасибо за предыдущие консультации. Прошу помощи по следующим вопросам. Как читать информацию, которую выдает отладчик AFD по Регистру Флагов? Нечто такое – "Flags 3202". Затем, после выполнения некоторых команд, число в регистре флагов меняется, допустим, на "Flags 3200". Изменения...

Консультация # 192229:

Здравствуйте, уважаемые эксперты!
Спасибо за предыдущие консультации.
Прошу помощи по следующим вопросам.
Как читать информацию, которую выдает отладчик AFD по Регистру Флагов?
Нечто такое – "Flags 3202". Затем, после выполнения некоторых команд, число в регистре флагов меняется, допустим, на "Flags 3200". Изменения идут, после выполнения только некоторых команд (не всех подряд).
Что лежит в стеке, после открытия простой программы (выводит строку на экран) в отладчике AFD? Я имею в виду, что обозначают записи в стеке после "+0 0000"?
Вот вид стека:
Stack +0 0000
+ 20CD
+4 9FFF
+6 9A00
Как всегда, для наглядности, я прилагаю свой файл, с более подробной информацией (есть screenshot-ы). Если можно, ответьте мне в этом же файле, комментируя мои рассуждения и отвечая на вопросы возникшие во время исследования простой программы в отладчике AFD.


Дата отправки: 25.12.2017, 19:24
Вопрос задал: kerenskyaf (Посетитель)
Всего ответов: 1
Страница онлайн-консультации »


Консультирует Зенченко Константин Николаевич (Модератор):

Здравствуйте, kerenskyaf!

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

Для работы в самом отладчике Вам нужна только строка, на которую Вы не обратили внимание,

та которая под FLAGS - OF DF IF ... - это названия самих флагов, а ниже 0 или 1, т.е. сброшен он или установлен.

Ну начнем с того, что стек работает с регистрами SS : SP, а так как у Вас CS = DS = ES = SS, то это в начале может вводить в заблуждение. Уровни - это содержимое стека, как это считает сам процессор.
Выполняем простой код:

и смотрим как меняется содержимое стека:

Для программ DOS максимальный размер сегмента 64кБ, поэтому при суммировании, к примеру FFFE + 2, получается 10000, но это выходит за размер разрядной сетки и переполнение отбрасывается, получается 0000.
SS : SP + 0 = SS : [ FFFE ] = 0000 - это значение поставляет сама ОСь, для сом-файлов, как защита самой себя.
SS : SP + 2 = SS : [ FFFE + 2 ]= SS : [0000] = CS : [0000] - указывает на префикс программы. Я уже показывал,что сегментные регистры равны. Как только Вы будете работать с ехе-файлами, равенство регистров пропадет и все станет на свои места:
CS - будет указывать на сегмент кода;
DS = ES - на префикс программы(так уж заведено, чтобы ОСь могла передать командную строку в программу и многое другое);
SS - на сегмент стека.

Удачи!

Консультировал: Зенченко Константин Николаевич (Модератор)
Дата отправки: 02.01.2018, 13:16
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Оценить выпуск | Задать вопрос экспертам

главная страница  |  стать участником  |  получить консультацию
техническая поддержка

Дорогой читатель!
Команда портала RFPRO.RU благодарит Вас за то, что Вы пользуетесь нашими услугами. Вы только что прочли очередной выпуск рассылки. Мы старались. Пожалуйста, оцените его. Если совет помог Вам, если Вам понравился ответ, Вы можете поблагодарить автора - для этого в каждом ответе есть специальные ссылки. Вы можете оставить отзыв о работе портале. Нам очень важно знать Ваше мнение. Вы можете поближе познакомиться с жизнью портала, посетив наш форум, почитав журнал, который издают наши эксперты. Если у Вас есть желание помочь людям, поделиться своими знаниями, Вы можете зарегистрироваться экспертом. Заходите - у нас интересно!
МЫ РАБОТАЕМ ДЛЯ ВАС!


В избранное