Компьютер «Специалист»

«СПЕЦИАЛИСТУ» — ОТЛАДЧИК ПРОГРАММ

Предлагаемая версия CD’E’ (The Code Debugger ’Evmolay’) позволяет осуществить прогон программ в машинных кодах, пошаговое исполнение, индикацию ассемблерного текста (дизассемблирование) и внесение в него изменений. Кроме того, CD’E’ реализует все функции исходного монитора «Специалиста». Содержит удобный строчный редактор и может с успехом использоваться для создания несложных программ на Ассемблере.

Директивы CD’E’ представляют собой полные английские слова или их сокращения, которые обозначают производимые действия. Причем CD’E’ размещается в верхних адресах пользовательского ОЗУ, оставляя тем самым почти всю свободную память (0000—7FFF) для написания программ пользователя.

Код отладчика приведен в таблице.

Работа с программой, думается, не вызовет каких-то особых затруднений. После правильного ввода и запуска CD’Е’ на экране появится символ ’ОК’ и мигающий курсор, приглашающий к работе.

Для ввода команд и данных служит строчный редактор, управляемый следующими клавишами: курсор влево ← и, соответственно, вправо →. Для очистки строки или отмены команды служит \ . Левый пробел — удаление символа над курсором; <3Б> есть не что иное, как забой символа слева от курсора, а <ВК> — ввод команды. Если команда или данные введены неверно, то CD’Е’ возвращает курсор в начало строки, предлагая отредактировать ее и повторить ввод.

Параметры для команд должны представляться в шестнадцатеричном виде. Причем двухбайтовая константа вводится четырьмя символами, включая незначащие нули, а однобайтовая — двумя.

I. КОМАНДЫ ОБЩЕГО НАЗНАЧЕНИЯ

1. CLS — очистка экрана.

2. LOAD — загрузка программ с магнитной ленты.

3. SAVE <адрес1> <адрес2> — запись на магнитную ленту массива данных с <адрес1> по <адрес2> .

4. VERIFY — сравнение массива данных, записанных на ленту, с массивом, находящимся в памяти по начальному адресу, указанному в заголовке ленточных данных.

5. QUTT — выход из CD’E’. Указатель стека устанавливается на прежний адрес (CD’E’ организует свой стек). Возвращаются значения регистров, и происходит выход в вызвавшую CD’E’ программу.

II. КОМАНДЫ МОНИТОРА

1. RESET <адрес> — позволяет изменять содержимое ячеек памяти начиная с <адрес> . Например,

RESET 0000

0000 FF WITH —

По адресу 0000 находится значение FF. Предлагается его изменить. Если произойдет неверный ввод, или вдруг будет нажата клавиша <ВК>, то содержимое ячейки не изменится. А редактирование перейдет к ячейке со следующим адресом.

2. FILL <адрес1> <адрес2> <байт> — заполняет область памяти с <адрес1> по <адрес2> значением <байт>: FILL 9000 BFFF FF

3. DUMP <адрес> — выводит на экран в шестнадцатеричном и КОИ-7 кодах содержимое ячеек памяти, начиная с <адрес>.

DUMP С000

0000 С3 03 СО 31 FF 3F 41 41 42 …!. ААВ

Если выводимый код не входит в диапазон печатных символов КОИ-7, то вместо него печатается точка.

4. COPY <адрес1> <адрес2> <адрес3> — копирует последовательность байт, расположенных с <адрес1> по <адрес2>, в область памяти, начиная с <адрес3>: COPY С000 C0FF 9000

5. SEARCH <адрес1> <адрес2> <байт> — ищет в блоке памяти с <адрес1> по <адрес2> ячейку со значением <байт>. Если такая имеется, то на экран выводится содержимое пяти байт: двух — до искомого байта и двух — после: SEARCH С000 С010 С3 BFFE 00 00 С3 03 С0 …..

После нажатия любой клавиши поиск в блоке продолжается.

КОД ОТЛАДЧИКА

КОД ОТЛАДЧИКА

КОД ОТЛАДЧИКА

Как свидетельствует редакционная почта, в условиях почти полного отсутствия доступной литературы по программированию на низкоуровневых языках единственным методом самообразования для многих читателей и подписчиков нашего журнала остается подчас изучение программных продуктов, созданных профессиональными программистами и публикуемых в нашем журнале. Неплохо может зарекомендовать себя в этом плане и материал о CD’E’, печатать который журнал начал в № 10’94 г.

Несомненным плюсом материала о CD’E’ является сравнительно небольшой его объем при достаточном для указанных целей наборе реализуемых функций. Кроме того, возможно использование отдельных подпрограмм CD’E’. Например, использование БЕЙСИКОМ редактора CD’E’, которое хотя и требует незначительного изменения БЕЙСИК-интерпретатора, зато существенно облегчает ввод и редактирование программ.

«СПЕЦИАЛИСТУ» - ОТЛАДЧИК ПРОГРАММ (Окончание. Начало в № 10’94 г.)

«СПЕЦИАЛИСТУ» - ОТЛАДЧИК ПРОГРАММ (Окончание. Начало в № 10’94 г.)

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’ можно также рекомендовать для изучения приемов программирования. В частности, путем исследования программ, созданных высококвалифицированными специалистами. Эта возможность обеспечивается совместным использованием дизассемблирования, трассировки, индикации содержимого регистров процессора и памяти (области стека, системных переменных и т.п.).

Ю. МЕТЛИЦКИЙ, Брестская обл.

Рекомендуем почитать

  • НА ЛЫЖАХ… В КОМНАТЕНА ЛЫЖАХ… В КОМНАТЕ
    Вообще-то такой тренажер больше подходит для тренировок в то время, когда нет снега; но может применяться и зимой, если вы живете в городе и имеете возможность делать лыжные вылазки лишь в...
  • МИНИ-ТЯПКАМИНИ-ТЯПКА
    Удобный небольшой полольник нетрудно изготовить своими силами. Для этого пригодится сегмент ножевого полотна сельскохозяйственной косилки. Если добавить к нему стальную пластину толщиной...
Тут можете оценить работу автора: