Как свидетельствует редакционная почта, в условиях почти полного отсутствия доступной литературы по программированию на низкоуровневых языках единственным методом самообразования для многих читателей и подписчиков нашего журнала остается подчас изучение программных продуктов, созданных профессиональными программистами и публикуемых в нашем журнале. Неплохо может зарекомендовать себя в этом плане и материал о CD’E’, печатать который журнал начал в № 10’94 г.
Несомненным плюсом материала о CD’E’ является сравнительно небольшой его объем при достаточном для указанных целей наборе реализуемых функций. Кроме того, возможно использование отдельных подпрограмм CD’E’. Например, использование БЕЙСИКОМ редактора CD’E’, которое хотя и требует незначительного изменения БЕЙСИК-интерпретатора, зато существенно облегчает ввод и редактирование программ.
III. Команды отладчика
1. ASM <адрес> — команда оперативного ассемблирования. Она позволяет разместить в памяти, начиная с <адрес>, коды команд. Именно те, которые соответствуют мнемоническим обозначениям МП КР580.
Для упрощения алгоритма ассемблирования в мнемонику команд внесены несущественные изменения. В частности, регистр указателя стека SP кодируется как S, а регистровая пара PSW — как F. Поэтому вместо LXI SP, nnnn следует вводить LXI S, nnnn
___»___ DAD SP ___»___ DAD S
___»___ PUSH PSW ___»___ PUSH F
___»___ POP PSW ___»___ POP F
2. DASM <адрес> — переводит расположенный начиная с <адрес> код команд МП КР580 в их мнемонические обозначения. А раз ассемблирование и дизассемблирование используют одни и те же таблицы, значит — упомянутые выше мнемонические особенности ASM сохраняются и для DASM. То есть,
DASM С000
С000 С303С0 JMP С003
С0003 31FF3F LXI S, 3FFF
Неисполняемые коды процессора печатаются в виде NOUSED n, где n — шестнадцатиричный номер неисполняемого кода.
NOUSED 0 08
NOUSED 1 10
…
NOUSED В FD
3. В CD’E’ имеется возможность задания содержимого регистровых пар процессора для последующей их передачи в опции RUN, TRACE и QUIT. Например,
AF = 4000
HL = 9000
SP = 3FFF
ВС = 0000
DE = 0101
4. REG — команда просмотра данных, которые будут переданы в регистры при выполнении команд TRACE, RUN, QUIT. Одновременно индицируются значащие биты регистра признаков:
REG
РС=7000 SP=3FFF AF=4000 S Z А Р С
HL=0000 DE=4000 BC=FFFF 0 0 0 0 0
5. RUN <адрес> — запускает на исполнение тестируемую программу, расположенную по <адрес>. С предварительной передачей в регистры заданных значений, которые можно проверить командой REG.
6. BREAK <адрес> — устанавливает на <адрес> так называемую «точку останова». По данной команде, начиная с указанного адреса, изымаются и сохраняются три последовательно расположенных байта. Вместо них устанавливается переход в область CD’E’. При достижении «точки останова» в исполняемой программе управление передается отладчику. А он восстанавливает изъятые ранее байты и запоминает текущие значения регистров. После этого результат работы исследуемой программы можно просмотреть командой REG.
Возможна установка только одной «точки останова». При установке новой точки старая удаляется.
7. TRACE <адрес> — позволяет «покомандно» исполнять программу. Причем начиная с <адрес>. Особенность здесь такова, что при нажатии любой клавиши исполняется текущая команда.
Помимо своего основного назначения (отладки программ), CD’E’ можно также рекомендовать для изучения приемов программирования. В частности, путем исследования программ, созданных высококвалифицированными специалистами. Эта возможность обеспечивается совместным использованием дизассемблирования, трассировки, индикации содержимого регистров процессора и памяти (области стека, системных переменных и т.п.).
Ю. МЕТЛИЦКИЙ, Брестская обл.