Здравствуйте, 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 - на сегмент стека.
Удачи!
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.