При помощи команд SYMDEB реализуется алгоритм отладки, а также обеспечивается выполнение основных функций SYMDEB. Команды SYMDEB вводятся в диалоговом режиме после приглашающего символа -. Группа команд может быть выполнена до начала отладки.
Введенную команду SYMDEB можно отменить нажатием клавиш CTRL-C или задержать нажатием клавиш CTRL-S. Если отлаживаемая программа обратилась к вводу/выводу, этими клавишами можно отменить или задержать введенную командуG. Если программа не обратилась к вводу/выводу, остановить ее выполнение можно только соответствующими клавишами, если были заданы опции/K или /N.
Некоторые команды имеют параметры, которыми могут быть числа, символы или выражения. Параметры, если их несколько, разделяются запятыми. Между именем команды и первым параметром пробела не требуется, исключая те случаи, где это оговорено особо.
Ниже приведено описание способов кодирования различных типов параметров в командах SYMDEB.
1. Символы могут представлять регистр, абсолютное значение, адрес сегмента или смещение сегмента и состоят из одного или более символов, включая _,?, @ и $. Первым символом должна быть буква. Все символы должны быть определены в символьном файле. SYMDEB не чувствителен к смене регистра. При совпадении символов с именами регистров последние имеют больший приоритет.
2. Числа представляются в виде:
u <число>Y — двоичное
u <число>O — 8-ричное
u <число>Q — 8-ричное
u <число>T — десятичное
u <число>H —16-ричное
Допустимо кодирование ключевых символов Y, O, Q, T и H на регистре строчных букв. При распознавании чисел максимальный приоритет имеют 16-ричные числа.
3. Адреса представляются в виде:
<сегмент>:<смещение>
<Сегмент> и <смещение> могут быть числами (представимыми как 16-разрядные), именами регистров или символами. Многие команды имеют умалчиваемые имена регистров (DS или CS).
4. В качестве смещения могут быть указаны границы:
<начальный адрес> <конечный адрес>
Если <конечный адрес> опущен, предполагается значение <начальный адрес>+128.
5. В качестве смещения может быть задан счетчик:
<начальный адрес> L <число объектов>
Размер объекта (байт, слово, инструкция) определяется использующей эту конструкцию командой.
6. Номер линии представляет собой комбинацию десятичных чисел, имен файлов и символов, определяющих уникальную линию исходного текста программы. Номер линии может быть задан в трех различных формах:
.+<число> | - <число>
.[<имя файла>:]<число>
.<символ>[+<число> | -<число>]
Первая форма определяет смещение (в линиях) относительно текущей линии исходного текста. Вторая форма отображает абсолютный номер линии в файле с указанным именем. Если имя файла опущено, предполагается текущий файл, определяемый текущими значениями регистровCS и IP. В третьей форме <символ>может быть инструкцией или меткой процедуры. Если задано <число>, оно является смещением (в линиях) искомой линии относительно линии, идентифицированной указанным символом.
7. Строки являются набором значений в коде ASCII и могут быть заданы в двух форматах:
\&'<символы>'
"<символы>"
Если в строке присутствуют символы ' или ", их следует кодировать дважды.
8. Выражение представляет собой комбинацию параметров и операторов, которая преобразуется в 8-, 16- или 32-битовое значение. Могут использоваться скобки. Унарные адресные операторы подразумевают регистр DS как умалчиваемую адресную базу (сегмент).
Ниже приведены унарные операторы (в порядке убывания приоритетов):
u +
u -
u NOT — дополнение операнда до 1
u SEG — адрес сегмента операнда
u OFF — смещение операнда
u BY — младший байт из указанного адреса
u WO — младшее слово из указанного адреса
u DW — двойное слово из указанного адреса
u POI — указатель из указанного адреса (как DW)
u PORT — 1 байт из указанного порта
u WPORT — слово из указанного порта
Ниже приведены бинарные операторы (в порядке убывания приоритетов):