Отладка программ с использованием 8087 - часть 3
на число с массой нулей, а это эквивалентно сдвигу десятичной точки
вправо. В данном случае, если вершина стека содержит 1/2,
умножение преобразует ее в 500000.
После того, как число преобразовано в большое целое (вместо
дробного), команда FBSTP записывает его в упакованной десятичной
форме в поле, также находящееся в этом специальном программном
фрагменте. Затем команда INT 3 возвращает управление программе
DEBUG. Теперь можно использовать команду Display программы DEBUG,
чтобы посмотреть на 10 байт, записанных командой FBSTP. Конечно,
читать показанное значение нужно наоборот, так как это - способ,
которым сопроцессор 8087 записывает десятичные числа. Также надо
учесть модификацию десятичнлй точки, которую выполнило умножение.
------------------------------
TEN6 DD 1000000
ORG 200H
BCD_TEMP DT ?
ORG 210H
FIMUL TEN6
FBSTR BCD_TEMP
INT 3
--------------------------- Фиг. 7.29 Отладка процедуры
для числового сопроцессора
Отладка программы для сопроцессора 8087 осуществляется
следующим образом. Как только вы решили, что программа работает
неверно, вы находите место контрольной точки по листингу программы.
Использование команды Unassemble многого не даст, так как все
команды сопроцессора 8087 дезассемблируются как команды ESC. Так
что использование литсинга программы существенно.
Теперь вы выполняете программу с начала до контрольной точки;
именно для этого вы сконструировали программу так, чтобы ее можно
было перезапустить с начала баз какой=либо подготовки. Всякий раз,
когда вы вновь устанавливаете контрольную точку, нужно выполнять
программу с начала.
Когда программа попадает на контрольную точку, управление
передается в отладчик. Теперь вы можете выполнить тот специальный
фрагмент кода, который помещен в программу. Команда INT 3 в конце
Содержание Назад Вперед