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



         

Отладка программ с использованием 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 в конце



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