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



         

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


      Перед тем, как мы окончим обсуждение процессора 8087, хотелось
    бы немного поговорить об отладке написанных для него программ.
    Проблема, с которой мы сталкиваемся здесь, заключается в том, что
    утилита DEBUG (отладчик) в DOS не поддерживает процессор 8087.
    Это означает, что при обнаружении отладчиком контрольной точки он
    не отображает на экране содержимого регистров сопроцессора 8087.
    Это сильно затрудняет отладку программы, изменяющей регистры
    сопроцессора 8087.
 
      В книге предлагается метод, который можно применять для отладки
    программ сопроцессора 8087, используя отладчик DOS.  Этот метод
    может быть и не наилучший, но он использовался при отладке программ
    приведенных в этой главе.
 
      Основное препятствие заключается в неспособности программы
    DEBUG показывать содержимое регистрового стека сопроцессора 8087.
    Без переписывания заново программы DEBUG этот метод дает
    существенную иинформацию, необходимую при отладке программы
    сопроцессора 8087.  Этот метод отладки требует, чтобы программа
    была написана, как отдельно выполняемая, либо как файл типа .EXE,
    либа типа .COM.  Даже если вы пишете подпрограмму, отладьте ее
    сначала, как головную программу.  Одной из первых команд программы
    должна быть команда FINIT, сбрасывающая процессор 8087 в состояние,
    в которое он попадает при включении питания.  Это надо сделать,
    чтобы можно было прогонять программу снова и снова, всегда начиная
    сначала.  Рассматриваемый здесь метод отладки не позволит вам
    остановиться, проанализироваь регистры сопроцессора 8087, а затем
    продолжить программу с этого же места.  Этот метод основывается на
    возможности начинать все сначала после каждой контрольной точки.
 
      Вы должны организовать все параметры подпрограммы в виде ячеек
    памяти, и программа должна загружать все эти числа в
    соответствующие регистры вслед за командой FINIT.  Это необходимо,
    даже если идет работа с программой, принимающей параметры,



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