Assembler для начинающих



         

Отладка программ с использованием 8087 - часть 2


    переданные через стековые регистры.  Сначала отлаживаемая программа
    работает с параметрами, лежащими в памяти.  После того, как
    арифметика и логика программы будет отлажена, можно будет изменить
    программу так, чтобы она принимала параметры из регистрового стека.
      Цель всех этих действий - позволить программе выполняться без
    внешнего вмешательства.  Это означает, что можно запустить
    программу сначала и выполнять ее до некоторой команды, и перезапуск
    программы приведет к точно такому же ее выполнению.  Такое свойство
    необходимо, так как предлагаемый метод индикации регистров
    разрушает содержимое стека процессора 8087, и когда это произошло,
    продолжать выполнение программы с этого же места уже нельзя.
    Программу надо перезапустить с самого начала и остановить ее уже в
    другом месте, а это возможно благодаря принятым мерам.  Последние
    два примера, квадратное уравнение и функция синуса, устроены именно
    таким образом:  их параметры находятся в памяти, и программы
    начинаются с команды FINIT.
 
      Следующий этап процедуры отладки требует размещения
    специального программного фрагмента в заранее фиксированном месте
    вашей программы.  Для отладки примеров был выбран адрес 200, так
    как ни один из этих примеров не занимает более 500 байт.  Этот
    программный фрагмент предназначен только для отладки, и вы удалите
    его перед получением окончательной версии программы.  Такой
    фрагмент показан на Фиг. 7.29.  Как вы видите, он очень короток и
    содержит только три команды и два поля данных.  Первое поле данных
    содержит константу, в данном случае 106, или 1000000.  Выбор этого
    значения остается за вами; другое значение может оказаться
    подходящим, если ваша программа работает с числами, меньшими 10-6,
    или большими 1012.
 
      Смысл этого программного фрагмента заключается в том, что он
    преобразует содержимое вершины стека в число, которое вы сможете
    увидеть.  Этот фрагмент умножает содержимое текущей вершины стека



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