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



         

Отладчик DEBUG - часть 4


    STACK. Описанное состояние регистров будет сравниваться позднее с
    аналогичным состоянием регистров для файла типа .COM.
 
      Чтобы просмотреть большее число команд, надо ввести символ "U"
    (дизассемблировать), и на дисплей выводится около двадцати
    следующих команд. Это удобно при обладке программы, для которой нет
    листинга. Дизассемблирование программы позволяет просмотреть ее
    команды. Это может сэкономить вам бумагу и время в случае, когда в
    программу внесены небольшие изменения. Так как ваш листинг больше
    не соответствует той программе, которая находится в памяти, то ее
    дизассемблирование позволяет вам узнать правильные адреса для
    каждой команды.
 
      Однако у дизассемблирования с помощью программы DEBUG имеется
    ряд недостатков по сравнению с использованием листинга. Отсутствуют
    комментарии (может быть очень важные для понимания программы), и
    ячейки памяти идентифицируются только по адресу, а не по имени
    переменной. Например, хранящаяся в ячейке 04C5:000E команда имеет,
    как показано на Фиг.5.13, следующий вид:
 
      MOV   OUTPUT_CHARACTER,AL
 
      а в дизассемблированном виде
 
      MOV   [0030],AL
 
      Это одна и та же команда. Для программиста, выполняющего
    отладку, имя переменной OUTPUT_CHARACTER говорит больше, чем адрес
    ячейки [0030]. Однако программе DEBUG не известны имена переменных,
    и она вынуждена оперировать фактическими адресами.
 
      Кроме того, программа, DEBUG не обеспечивает той же самой
    ассемблерной мнемоники, которую воспринимает ассемблер. Это значит,
    что некоторые команды будут выглядеть по-разному. Команда из ячейки
    04C5:0014 будет при дмзассемблировании иметь вид
 
      CMP   B,[3000],0A
 
      но та же саммая команда на Фиг.5.13 представлена в виде:
 
      CMP   OUTPUT_CHARACTER,10
 
      Программа дизассемблирования как на входе, так и на выходе
    работает только с шестнадцатеричными значениями. Этим объясняется



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