Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Запуск SYMDEB для символьной отладки



При использовании символьной отладки в командной строке запуска SYMDEB должен быть специфицирован символьный файл.

При загрузке нескольких символьных файлов сразу будет открыт только один из них. Если один из специфицированных символьных файлов имеет базовое имя, совпадающее с базовым именем исполнительного файла, открывается именно он, иначе будет открыт первый из указанных символьных файлов. Во время сеанса SYMDEB для открытия конкретного файла может быть использована команда XO. Так как одновременно может быть открыт только один символьный файл, предыдущий файл при выполнении команды XO закрывается.

Исполнительный файл может быть специфицирован при загрузке символов. Символы могут быть загружены без исполнительного файла (это может потребоваться для отладки резидентной программы). Если возникнет необходимость в загрузке исполнительного файла позже в текущем сеансе, могут быть использованы команды N или L.

Не следует переименовывать символьные файлы, так как тогда при загрузке они будут иметь неверные адреса.

Запуск SYMDEB только с исполнительным файлом

Если пользователь не нуждается в символьном файле или не имеет исходного файла программы, в командной строке запуска SYMDEB он может опустить имя символьного файла.

SYMDEB будет загружать исполнительные файлы, имеющие расширения имен EXE, BIN, HEX или COM.

Всякий раз при загрузке исполнительного файла SYMDEB формирует 256-байтный заголовок в сегменте памяти с наименьшим возможным адресом и копирует содержимое файла непосредственно после заголовка. SYMDEB помещает размер программы в байтах в пару регистров BX: CX и устанавливает значения всех остальных регистров в соответствии с содержимым файла.

 

Для EXE- и HEX -файлов заголовок при загрузке будет разорван на части. Поэтому размер программы в этом случае не соответствует размеру файла, как это имеет место для COM- и BIN -файлов.

Запуск SYMDEB без файлов

Если в командной строке запуска не указаны имена файлов, SYMDEB создает заголовок программы, но ничего не загружает. Для продолжения работы пользователь может использовать команды ассемблирования ( A ), ввода ( E ), установки имени ( N ) или загрузки ( L ).

При запуске без файлов SYMDEB перед началом отладки очищает флаги, в регистр IP загружает значение 0100h, устанавливает регистры сегментов на «дно» свободной памяти и обнуляет остальные регистры.

Опции SYMDEB

Опции SYMDEB обозначаются предшествующими символами / или - и могут кодироваться как заглавными, так и строчными буквами. В командной строке запуска SYMDEB они располагаются перед именем исполнительного файла.

Имена файлов, содержащие символ -, во избежание путаницы должны быть изменены.

Описание опций SYMDEB приведено ниже.

/IBM (или I)

Установить совместимость с IBM. При работе на не IBM-машине эта опция позволяет учитывать некоторые особенности аппаратуры IBM (контроллер прерываний 8259, дисплей IBM и другие особенности BIOS). При работе на IBM-машине эти особенности распознаются автоматически.

/K

Разрешение интерактивного выхода по ключу.

При задании этой опции клавиша SCROLL-LOCK ( BREAK ) программируется таким образом, что ее нажатие останавливает исполнение программы. Это может понадобиться, например, для выхода из бесконечного цикла.

Интерактивный ключ работает примерно также, как ключ прерывания от аппаратуры, но менее надежно. В некоторых ситуациях (например, когда замаскированы прерывания) он не срабатывает. Если программа ожидает ввода, предпочтительней использовать CTRL-C, чем BREAK. В IBM PC AT в тех же целях, но даже без опции /K, может быть использован ключ SYS REQ.

/N

Разрешение выхода по немаскируемому прерыванию. Для работы с немаскируемыми прерываниями вычислительная система должна иметь соответствующее аппаратное обеспечение. Опцию /N можно использовать со следующими продуктами:

u специальная утилита отладки фирмы IBM

u зонд математического обеспечения фирмы ATRON

При использовании опции /N SYMDEB требуется аппаратура, поставляемая с этими продуктами. Дополнительного математического обеспечения не требуется. При использовании одного из этих продуктов в системе, отличной от IBM, для обеспечения выхода нужно использовать опцию /N. Но эту опцию нельзя кодировать при работе на IBM PC. Использование системы выхода по немаскируемому прерыванию предпочтительней интерактивного выхода по ключу, так как не зависит от состояний прерываний и других условий.

/S

Разрешение смены экрана. Эта опция позволяет разделить экраны: один для отладчика, другой — для отлаживаемой программы. Это удобно, например, при отладке графических программ, но требует дополнительно 32К памяти. Опция /S работает только на IBM-машинах и некоторых совместимых с ними компьютерах. При работе на совместимых компьютерах в этом случае должна быть специфицирована также и опция /IBM. Опция /S не может быть использована с графикой, требующей более 32К памяти.

/" команды"

Выполнить серию команд SYMDEB. Команды должны разделяться символом; и выполняются после загрузки файлов, но перед их исполнением. Этой опцией могут быть, например, заданы команды, выполняемые в начале каждого сеанса SYMDEB.

Команды SYMDEB

При помощи команд 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 — слово из указанного порта

Ниже приведены бинарные операторы (в порядке убывания приоритетов):

u *

u / — деление нацело

u MOD — modulus

u: — переключение сегмента

u +

u -

u AND — побитовое И

u XOR — побитовое исключающее ИЛИ

u OR — побитовое И

Команда ассемблирования

Синтаксис:

A[< адрес> ]

Команда ассемблирует мнемонические инструкции и помещает полученный код по указанному адресу. Если адрес не указан, он определяется содержимым регистров CS и IP.

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

Ввод каждой инструкции отмечается нажатием клавиши ENTER. SYMDEB ассемблирует последнюю введенную инструкцию и выдает новый адрес. Конец ввода инструкций обозначается нажатием ENTER без вводимых символов.

Если введенная инструкция содержит ошибку, об этом выдается сообщение, и текущий адрес не изменяется.

При использовании команды A необходимо соблюдать следующие правила:

1. Дальний возврат обеспечивается мнемоникой RETF.

2. Инструкции обработки строк должны явно указывать длину строки. Рекомендуется использовать MOVSB и MOVSW.

3. SYMDEB автоматически ассемблирует короткие, внутренние и дальние скачки и вызовы в зависимости от местоположения целевого адреса. Это правило можно отменить кодированием префиксов NEAR (допустимо сокращение NE ) и FAR, например:

JMP NEAR 502

JMP FAR 50A

4. SYMDEB не может определить, ссылаются ли операнды на слово или на байт памяти. Поэтому тип данных должен быть явно указан префиксами WORD (допустимо сокращение WO ) PTR или BYTE ( BY ) PTR, например:

MOV WORD PTR [bp], 1

MOV BY PTR [si-1], symbol

5. SYMDEB не может определить, ссылается ли операнд на область памяти или это непосредственный операнд. По этой причине ссылка на область памяти должна быть заключена в одинарные квадратные скобки.

6. Для директив DB и DW ассемблируются байт или слово непосредственно в памяти.

7. SYMDEB поддерживает все формы косвенно-регистровой адресации, например:

ADD bx, 34[bp+2].[si-1]

pop [bp+di]

push [SI]

8. Распознаются все синонимы кодов (для команд перехода). Результатом работы команды реассемблирования U являются также синонимы.

9. Не следует ассемблировать и исполнять инструкции процессоров, если система не обеспечена такими сопроцессорами. Например, использование в такой ситуации инструкции WAIT может «повесить» систему.

 

 

Точки выхода

SYMDEB предоставляет пользователю возможность вставить в тело тестируемой программы набор точек выхода, достижение которых при исполнении кода, вызовет прекращение работы программы, выдачу на дисплей текущего состояния всех флагов и регистров в формате команды R и возврат в SYMDEB.

Ниже описаны команды манипуляции с точками выхода.

1. Установка точки выхода. Синтаксис:

BP [< число> ]< адрес> [< счетчик пропусков> ] [" < команды> " ]

Точка выхода вставляется по указанному адресу. Точки выхода, вставляемые по команде BP, в отличие от точек выхода, создаваемых командой G, остаются в теле программы (в памяти, разумеется) до тех пор, пока не будут удалены командой BC.

SYMDEB позволяет устанавливать до 10 точек выхода с номерами от 0 до 9. Если специфицировано < число>, оно задает номер вставляемой точки, в противном случае подразумевается первая доступная точка.

< Адрес> может определять начало некоторой реальной инструкции.

< Счетчик пропусков> задает число «холостых» выполнений точки выхода, когда ее действие игнорируется, до первого ее срабатывания. Счетчик хранится как 16-битовое число.

< Команды> SYMDEB будут выполняться при каждом срабатывании точки выхода. Друг от друга они должны отделяться символом;.

2. Изъятие точек выхода. Синтаксис:

BC < список> | *

< Список> представляет собой последовательность целых чисел без знака в пределах от 0 до 9. Точки выхода с номерами из этого списка удаляются из программы. Если специфицировано *, удаляются все точки.

3. Блокировка точек выхода. Синтаксис:

BD < список> | *

Команда выполняет функции, аналогичные функциям команды BC, но точки не удаляются из программы, а временно блокируются до выполнения соответствующей команды BE.

4. Разблокировка точек выхода. Синтаксис:

BE < список> | *

Команда BE противоположна по функциям команде BD.

5. Выдача списка точек выхода. Синтаксис:

BL

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

Статус блокировки может принимать следующие значения: e для разблокированной точки, d для заблокированной точки или v для виртуальной точки. Точка выхода считается виртуальной, если она была вставлена в файл в то время, когда он еще не был загружен.

Комментарии

Синтаксис:

* < комментарий>

Текст комментария выводится на дисплей.

Команда сравнения

Синтаксис:

C < границы> < адрес>

По этой команде байты памяти в указанных границах сравниваются с соответствующими им байтами, начиная с указанного адреса.

Если все байты совпадают, SYMDEB опять выдает свой приглашающий символ. В противном случае предварительно выдаются все пары несовпадающих байтов.

Команда «выдать»

Синтаксис:

? < выражение>

Значение специфицированного выражения вычисляется и выдается на консоль в различных форматах. Выдаваемая информация включает в себя полный адрес, 16-битовое 16-ричное значение, полное 32-битовое 16-ричное значение, десятичное значение в скобках и значение строки в двойных кавычках. Символы строки представляются точками, если их значение меньше 32 (20h) или больше 126 (7Eh).

Выражение может быть комбинацией чисел, символов, адресов и операторов.

Команды дампа

Следующие команды SYMDEB обеспечивают выдачу на консоль дампа оперативной памяти:

1. Дамп памяти по адресу или в границах. Синтаксис:

D [< адрес> | < границы> ]

Формат дампа определяется предыдущей введенной командой дампа. Если же это первая вводимая команда дампа, предполагается формат команды DB.

Команда D выдает одну или более линий в зависимости от того, < адрес> или < границы> указаны. Выдается по меньшей мере одно значение. Если специфицированы < границы>, выдаются все значения в них. Если операнд опущен, выдается содержимое памяти, начинающейся сразу после области, выданной предыдущей командой дампа. Если раньше дампирования не производилось, используется содержимое регистра IP, а если и этот регистр не был определен, используется содержимое регистра DS.

2. Дамп памяти по адресу или в границах в коде ASCII. Синтаксис:

DA [< адрес> | < границы> ]

Выдается одна или более линий в зависимости от того, < адрес> или < границы> указаны. Может быть выдано до 48 символов в линию. Символы, не имеющие аналогов в коде ASCII, то есть, со значением, большим 7Eh или меньшим 20h, обозначаются точками.

Если специфицирован < адрес>, выдается содержимое памяти до ближайшего нулевого байта или 128 байтов. Если параметр опущен, выдаются значения всех байтов, начиная с непосредственно следующего за выданным предыдущей командой дампа, до ближайшего нулевого или 128 байтов. Если при задании границ использовано L, выдается указанное число байтов.

3. Дамп памяти по байтам. Синтаксис:

DB [< адрес> | < границы> ]

Выдается комбинированный (16-ричный и символьный в коде ASCII) дамп памяти, начиная с указанного адреса или в указанных границах. Если указан < адрес> выдаются значения 128 байтов.

4. Дамп памяти по словам. Синтаксис:

DW [< адрес> | < границы> ]

Аналогично DB, но при указании адреса выдается содержимое 64 слов памяти.

5. Дамп памяти по двойным словам. Синтаксис:

DD [< адрес> | < границы> ]

Аналогично DB, но при указании адреса выдается содержимое 32 двойных слов памяти.

6. Дамп коротких десятичных чисел. Синтаксис:

DS [< адрес> | < границы> ]

ыдается комбинированный (16-ричный и в форме коротких, 4-байтных десятичных чисел с плавающей точкой) дамп памяти, начиная с указанного адреса, или в указанных границах.

Выдается одна или более линий в зависимости от того, < адрес> или < границы> указаны.

Выдается по меньшей мере одно число. Если специфицированы границы, выдаются все числа в их пределах.

7. Дамп длинных десятичных чисел. Синтаксис:

DL [< адрес> | < границы> ]

Команда аналогична DS, но оперирует с длинными (8 байтов) десятичными числами.

8. Дамп 10-байтных десятичных чисел. Синтаксис:

DT [< адрес> | < границы> ]

Команда аналогична DS, но оперирует с 10-байтными десятичными числами.

Команды ввода с клавиатуры

При помощи команд ввода с клавиатуры данные могут быть введены непосредственно в память.

1. Ввод значений. Синтаксис:

E < адрес> [< список> ]

Одно или более значений вводятся в память, начиная с указанного адреса. Размер значений устанавливается предыдущей командой ввода с клавиатуры, а если ее не было, предполагается EB.

Если элемент списка задан некорректно, список игнорируется.

Если список опущен, SYMDEB запрашивает значения в диалоговом режиме с указанием текущего адреса. Конец списка в этом случае обозначается нажатием клавиши ENTER без указания значения.

 

2. Ввод байтов. Синтаксис:

EB < адрес> [< список> ]

Одно или более чисел, занимающих 1 байт, вводятся в память, начиная с указанного адреса.

Если список опущен, SYMDEB запрашивает значения в диалоговом режиме с указанием текущего адреса. При этом имеется возможность заменить или пропустить значение, вернуться к предыдущему значению, выйти из команды.

Для замены числа следует записать новое значение после текущего.

Для пропуска числа необходимо нажать SPACE.

Для возврата к предыдущему числу следует ввести -. Для выхода из команды служит клавиша ENTER.

3. Ввод байтов. Синтаксис:

EA < адрес> [< список> ]

Аналогично EB.

4. Ввод слов. Синтаксис:

EW < адрес> [< значение> ]

Указанное значение в формате слова вводится в память по указанному адресу. После ввода SYMDEB запрашивает значение следующих 4 байтов. Конец ввода обозначается нажатием клавиши ENTER без указания значения.

5. Ввод двойных слов. Синтаксис:

ED < адрес> [< значение> ]

Указанное значение в формате двойного слова вводится в память по указанному адресу. Двойное слово кодируется как пара слов, разделенных символом:. После ввода SYMDEB запрашивает значение следующих 8 байтов. Конец ввода обозначается нажатием клавиши ENTER без указания значения.

6. Ввод коротких десятичных чисел. Синтаксис:

ES < адрес> [< значение> ]

Указанное значение в формате короткого (4 байта) десятичного числа с плавающей точкой вводится в память по указанному адресу. После ввода SYMDEB запрашивает значение следующих 4 байтов. Конец ввода обозначается нажатием клавиши ENTER без указания значения.

 

7. Ввод длинных десятичных чисел. Синтаксис:

EL < адрес> [< значение> ]

Команда аналогична ES, но оперирует с длинными (8 байтов) десятичными числами, которые представляются парой чисел, разделенных символом:.

8. Ввод 10-байтных десятичных чисел. Синтаксис:

ET < адрес> [< значение> ]

Команда аналогична EL, но оперирует с 10-байтными десятичными числами.

Просмотр символьного плана

Синтаксис:

X [*]

X? [< имя плана>! ][< имя сегмента>: ][< символ> ]

SYMDEB создает символьный план для каждого символьного файла, специфицированного в командной строке запуска SYMDEB.

Форма команды X обеспечивает выдачу имен и загрузочных адресов сегментов и символов текущего символьного плана. Если специфицировано *, выдаются имена и адреса всех загруженных в данный момент символьных планов.

Форма команды X? обеспечивает выдачу одного или более символов в символьном плане. Если указано имя символьного плана, выдается информация об этом плане ( < имя символьного плана> должно представлять имя соответствующего файла без расширения). Если задано имя сегмента, выдаются имя и загрузочный адрес этого сегмента. Если специфицирован символ, выдаются адрес сегмента и смещение этого символа. Для того, чтобы получить информацию о нескольких символах или сегментах, следует задавать частичные имена с использованием символа *.

Команда «наполнения»

Синтаксис:

F < границы> < список>

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

Команда Go

Синтаксис:

G [=< адрес начала программы> ][< адреса точек выхода> ]

По команде G управление передается программе по указанному адресу начала. Выполнение продолжается до конца программы или до достижения точек выхода, если они указаны. Программа останавливается также на точках выхода, внесенных командой BP.

Если адрес начала программы опущен, управление передается по адресу, определяемому содержимым регистров CS и IP.

Для передачи управления программе используется инструкция IRET. При этом SYMDEB соответствующим образом устанавливает указатель стека пользователя и заносит в этот стек флаги и регистры CS и IP. Следует иметь в виду, что если стек пользователя не содержит хотя бы 6 байтов доступной памяти, выполнение команды G может «повесить» систему.

Все значения без предшествующего = (знак равенства)рассматриваются как адреса точек выхода. Допустимо задание до 10 точек выхода. Их адреса должны указывать на начало инструкции.

Для создания точки выхода SYMDEB по каждому специфицированному адресу помещает инструкцию INT с кодом прерывания 204 (0CCh). При выходе из программы в одной из этих точек все внесенные инструкции INT удаляются из программы. Однако, если выполнение продолжается до конца программы или будет прекращено каким-либо другим образом, SYMDEB не удаляет внесенные им инструкции. В этом случае до следующего запуска нужно перезагрузить программу при помощи команд N и L.

Когда выполнение программы достигает точки выхода, SYMDEB выдает на дисплей текущее содержимое всех регистров и флагов в формате команды R, а также следующую инструкцию. Выполнение программы прекращается.

Если выполнение достигло логического конца программы, SYMDEB выдает сообщение Program terminated normally, и на экран выдается текущее содержимое регистров и флагов.

Справка о командах SYMDEB

Синтаксис:

?

На дисплей выдается список команд SYMDEB.

HEX-команда

Синтаксис:

H < значение 1> < значение 2>

Выполняются операции < значение 1> +< значение 2> и < значение 1> -< значение 2>, и результаты выдаются на экран в виде 16-ричных чисел.

Команда ввода из порта

Синтаксис:

I < номер порта>

Из порта с указанным номером (представимым 16-битным числом) считывается и выдается на экран 1 байт данных.

Команда загрузки файла

Синтаксис:

L [< адрес> [< драйв> < запись> < счетчик> ]]

Команда L обеспечивает считывание файла с диска и запись его в память.

Если опущены все параметры команды, загружается файл с именем, ранее определенным командой N или заданным аргументом при запуске SYMDEB. Если имя не было определено, SYMDEB считывает его из области памяти по адресу DS: 5C. Эта область представляет собой управляющий блок, содержащий имя определенного по команде N файла или аргумент запуска.

Пара регистров BX: CX должна содержать число загружаемых байтов.

В памяти файл размещается, начиная с указанного адреса или, если он опущен, с адреса CS: 100.

Если специфицированы все 4 параметра команды L, в память по указанному адресу загружается определяемое счетчиком количество логических записей, расположенных на указанном драйве. < Запись> определяет первую считываемую запись и может представляться 16-ричным числом, содержащим от 1 до 4 16-ричных цифр. < Счетчик> представляется аналогично. < Драйв> может быть задан числом 0, 1, 2 или 3, определяющим логический адрес драйва A, B, C или D соответственно.

Если имя файла имеет расширение EXE, его длина и адрес загрузки берется из заголовка файла, а параметры < адрес> и < счетчик> команды L, если они указаны, игнорируются.

Если имя файла имеет расширение HEX, адрес загрузки определяется суммой указанного в заголовке файла адреса и параметра < адрес> команды L или, если этот параметр опущен, только адресом загрузки из заголовка.

Команда перемещения

Синтаксис:

M < границы> < адрес>

Блок памяти в указанных границах перемещается по заданному адресу.

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

Для предотвращения потери данных команда M побайтно копирует данные, начиная со старших адресов исходного блока, если адрес его начала меньше адреса начала принимающего блока. В противном случае копирование производится, начиная с младших адресов исходного блока.

Команда установки имени

Синтаксис:

N [< имя файла> ] [< аргументы> ]

Устанавливается имя файла для последующего выполнения команд L и W или аргументы для последующего исполнения программы.

Аргументы, если они заданы, копируются, включая пробелы, в область памяти по адресу DS: 81. Длина поля параметров запоминается в байте памяти по адресу DS: 80.

Если первые два аргумента являются именами файлов, по адресам DS: 5C и DS: 6C создаются блоки управления файлами ( FCB ), куда по соответствующим форматам и копируются имена.

Команда N трактует < имя файла> как тоже аргумент, записывая его в память по адресу DS: 81 и создавая FCB по адресу DS: 5C. Поэтому необходимо помнить, что установка нового значения имени файла изменяет предыдущие аргументы программы.

 

 

Команда открытия символьного плана

Синтаксис:

XO [< имя плана>! ][< имя сегмента> ]

Команда XO устанавливает активным символьный план и/или сегмент.

Имя символьного плана, если оно указано, должно быть именем (без расширения) специфицированного при запуске SYMDEB символьного файла.

Имя сегмента, если оно указано, должно быть именем сегмента в специфицированном символьном плане. Все сегменты в открытом плане доступны, но открывается первый сегмент.

Команда вывода в порт

Синтаксис:

O < номер порта> < 1-байтовое 16-ричное значение>

Указанное значение направляется в порт с данным номером. Номер порта должен быть представим 16-битовым значением.

P-трассировка

Синтаксис:

P [=< адрес> ] [< счетчик> ]

Команда P выполняет задаваемую адресом инструкцию и затем выдает на дисплей в формате команды R текущее содержимое всех регистров и флагов.

Если < адрес> опущен, выполняется инструкция по адресу, определяемому регистрами CS и IP.

Счетчик, если он присутствует, задает число инструкций, которые будут выполнены до останова. Выдача регистров и флагов при этом будет осуществляться после выполнения каждой инструкции до начала выполнения следующей.

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

Формат и объем выдаваемой информации существенно зависит от режима, установленного командой S.

 

Команда выхода из SYMDEB

Синтаксис:

Q

По этой команде SYMDEB заканчивает свою работу.


Поделиться:



Популярное:

  1. A. Холодный двигатель не запускается или запускается плохо
  2. I.4. СЕМЬЯ И ШКОЛА : ОТСУТСТВИЕ УСЛОВИЙ ДЛЯ ВОСПИТАНИЯ
  3. II. Ассистивные устройства, созданные для лиц с нарушениями зрения
  4. II. Порядок представления статистической информации, необходимой для проведения государственных статистических наблюдений
  5. III. Защита статистической информации, необходимой для проведения государственных статистических наблюдений
  6. III. Перечень вопросов для проведения проверки знаний кандидатов на получение свидетельства коммерческого пилота с внесением квалификационной отметки о виде воздушного судна - самолет
  7. Qt-1 - сглаженный объем продаж для периода t-1.
  8. SYMDEB: символьный отладчик программ
  9. V Методика выполнения описана для позиции Учителя, так как Ученик находится в позиции наблюдателя и выполняет команды Учителя.
  10. V. Порядок разработки и утверждения инструкций по охране труда для работников
  11. VII. Перечень вопросов для проведения проверки знаний кандидатов на получение свидетельства линейного пилота с внесением квалификационной отметки о виде воздушного судна - вертолет
  12. VIII. Какую массу бихромата калия надо взять для приготовления 2 л 0,02 н. раствора, если он предназначен для изучения окислительных свойств этого вещества в кислой среде.


Последнее изменение этой страницы: 2017-03-08; Просмотров: 689; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.165 с.)
Главная | Случайная страница | Обратная связь