Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Форматирование

Читайте также:
  1. Алгоритм 2.15. Форматирование единиц времени календарной диаграммы
  2. Алгоритм 2.25. Форматирование графика ресурсов
  3. Задание №1. Форматирование текста
  4. Лабораторная работа 5. Относительная и абсолютная адресация. Условное форматирование
  5. Лабораторная работа № 2. Операции со строками, столбцами, ячейками. Мастер функций. Форматирование ячеек.
  6. Лабораторная работа №1. ВВОД И ФОРМАТИРОВАНИЕ ТЕКСТА
  7. Тема: Набор текста, редактирование и форматирование.

Debug

Запуск Debug.exe, программы для проверки и отладки исполнительных файлов MS-DOS. Выполненная без параметров команда debug запускает программу Debug.exe и выводит приглашение команды debug, представленное дефисом (-).

Синтаксис

debug [[ диск: ][ путь ] имя_файла [ параметры ]]

Параметры

[ диск: ][ путь ] имя_файла

Задание расположения и имени исполняемого файла для тестирования.

параметры

Указание параметров командной строки, передаваемых отлаживаемой программе.

?

Вывод списка подкоманд команды debug.

Примечания

Команда debug — это команда подсистемы MS-DOS, которая выполняется в среде WOW/NTVDM.

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

dcs:100 110

d cs:100 110

d,cs:100,110

Существует несколько команд debug, которыми можно воспользоваться. Дополнительные сведения о командах debug см. по ссылке «См. также».

Форматирование

Формат Значение
Курсив Данные, которые должен ввести пользователь
Полужирный шрифт Элементы, которые следует вводить точно, как показано
Пропуск (...) Параметры могут повторяться несколько раз в командной строке
В квадратных скобках ([]) Необязательные элементы
В фигурных скобках ({}); варианты разделены вертикальной чертой (|). Пример: {четные|нечетные} Набор значений, из которого можно выбрать только одно значение
Шрифт Courier Текст кода или выхода программы

 

Подкоманды команды Debug

Дополнительные сведения см. по ссылке команды.

Debug: a (assemble)

Создание двоичного кода процессоров 8086/8087/8088 непосредственно в памяти. Выполненная без параметров команда a начинает работу с точки последнего останова.

Синтаксис

a [ адрес ]

Параметры

адрес

Задает адрес, по которому записаны инструкции на языке ассемблер. Параметр адрес принимает шестнадцатеричные значения без знака h.

?

Вывод списка команд debug.

Примечания

Адрес состоит из двух частей: первая содержит буквенное обозначение сегментного регистра или адрес сегмента из четырех цифр, а вторая содержит значение смещения. Адрес сегмента или сегментный регистр можно пропустить. По умолчанию для команд debug a, g, l, t, u и w адрес сегмента содержится в регистре CS. Для других подкоманд по умолчанию используется сегмент DS. Все числовые значения при этом представлены в шестнадцатеричном формате. Между именем сегмента и значением смещения следует вставлять двоеточие. Примеры правильных адресов:

CS:0100

04BA:0100

Задайте мнемонику префикса инструкции перед кодом операции (т. е. opcode), к которой она относится. Команда a создает исполняемый машинный код из инструкций на языке ассемблера. Все числовые значения должны быть представлены в шестнадцатеричном формате и записаны как набор от 1 до 4 символов.

Мнемоники cs:, ds:, es: и ss:. Мнемоникой, вызывающей возврат управления в другой сегмент кода (far return), является retf. Мнемоники для работы со строками должны точно определять размер элементов строк. Например, для перемещения строк из слов (16 бит) следует использовать movsw, а для перемещения строк из байтов (8 бит) следует использовать movsb.

Ассемблер автоматически обрабатывает переходы и вызовы (т. е. префиксы short, near или far) в зависимости от смещения байтов. Имеется возможность переопределить переходы или вызовы с помощью префиксов near или far. Например:

-a0100:0500
0100:0500 jmp 502; короткий (short) переход на 2 байта
0100:0502 jmp near 505; ближний (near) переход на 3 байта
0100:0505 jmp far 50a; длинный (far) переход на 5 байтов

Вместо префикса near можно использовать сокращение ne.

Если операнды ссылаются на адреса слов или байтов в памяти, тип данных должен быть задан с использованием префикса word ptr или byte ptr, которые можно сократить до wo для word ptr и до by для byte ptr. Например:

dec wo [si]
neg byte ptr [128]

В программе Debug.exe используется общее соглашение о том, что операнды, указывающие на адрес в памяти, заключаются в квадратные скобки ([ ]). Это единственный способ, который позволяет различать непосредственные операнды и ссылки на области в памяти в Debug.exe. Например:

mov ax,21; загрузить число 21h в регистр AX
mov ax,[21]; загрузить содержимое
; памяти по адресу 21h
; в регистр AX

С командой a часто используются две псевдоинструкции: операция db, которая размещает байты непосредственно в памяти, и операция dw, которая размещает в памяти слова. Например:

db 1,2,3,4,"ЭТО ПРИМЕР"
db 'ЭТО КАВЫЧКА: "'
db "ЭТО КАВЫЧКА: '"
dw 1000,2000,3000,"BACH"

Дополнительные сведения о вводе данных в определенные байты с помощью команды e (enter) см. по ссылке «См. также».

Дополнительные сведения о деассемблировании байт с помощью команды u (unassemble) см. по ссылке «См. также».

Примеры

Команда a допускает различное использование ссылок на регистры. Например:

add bx,34[bp+2].[si-1]
pop [bp+di]
push [si])

Кроме того, команда a поддерживает использование синонимов дополнительных кодов операций: Например:

loopz 100
loope 100
ja 200
jnbe 200

Для дополнительных кодов операций процессора 8087 необходимо задать префиксы wait или fwait. Например:

fwait fadd st,st(3); эта строка вставляет
; в код префикса fwait

Форматирование

Формат Значение
Курсив Данные, которые должен ввести пользователь
Полужирный шрифт Элементы, которые следует вводить точно, как показано
Пропуск (...) Параметры могут повторяться несколько раз в командной строке
В квадратных скобках ([]) Необязательные элементы
В фигурных скобках ({}); варианты разделены вертикальной чертой (|). Пример: {четные|нечетные} Набор значений, из которого можно выбрать только одно значение
Шрифт Courier Текст кода или выхода программы

 

Debug: c (compare)

Сравнение двух блоков памяти.

Синтаксис

c диапазон адрес

Параметры

диапазон

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

адрес

Обязательный параметр. Задание начального адреса второй области памяти для сравнения.

?

Вывод списка команд debug.

Примечания

Параметр диапазон используется в командах debug для задания диапазона памяти. Для задания диапазона можно использовать один из следующих форматов: начальный и конечный адрес или начальный адрес и длина (разделяются символом l) диапазона. Например, обе следующих команды задают 16-разрядный диапазон, начинающийся с адреса CS:100:

cs:100 10f

cs:100 l 10

Адрес состоит из двух частей: первая содержит буквенное обозначение сегментного регистра или адрес сегмента из четырех цифр, а вторая содержит значение смещения. Адрес сегмента или сегментный регистр могут быть пропущены. По умолчанию для команд debug a, g, l, t, u и w адрес сегмента содержится в регистре CS. Для других подкоманд по умолчанию используется сегмент DS. Все числовые значения при этом представлены в шестнадцатеричном формате. Между именем сегмента и значением смещения следует вставлять двоеточие. Следующие адреса являются допустимыми:

CS:0100

04BA:0100

адрес1 байт1 байт2 адрес2

Примеры

Чтобы сравнить блок памяти от 100h до 10Fh с блоком памяти от 300h до 30Fh, введите следующую команду:

C100,10f 300

или

C100l10 300

Обе эти команды выведут следующие данные (предполагается, что DS = 197F):

197F:0100 4D E4 197F:0300
197F:0101 67 99 197F:0301
197F:0102 A3 27 197F:0302
197F:0103 35 F3 197F:0303
197F:0104 97 BD 197F:0304
197F:0105 04 35 197F:0305
197F:0107 76 71 197F:0307
197F:0108 E6 11 197F:0308
197F:0109 19 2C 197F:0309
197F:010A 80 0A 197F:030A
197F:010B 36 7F 197F:030B
197F:010C BE 22 197F:030C
197F:010D 83 93 197F:030D
197F:010E 49 77 197F:030E
197F:010F 4F 8A 197F:030F

Адреса 197F:0106 и 197F:0306 отсутствуют в списке. Это означает, что значения, расположенные по этим адресам, совпадают.


Дата добавления: 2015-11-13; просмотров: 29 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
ОБРАБОТКА ПРЕРЫВАНИЯ ТАЙМЕРА| Форматирование

mybiblioteka.su - 2015-2024 год. (0.014 сек.)