Скачиваний:
23
Добавлен:
11.05.2015
Размер:
998.91 Кб
Скачать

Input I порт

load L [адрес] [диск] [первый_сектор] [число]

move M диапазон адрес

name N [путь] [список_аргументов]

output O порт байт

proceed P [=адрес] [число]

quit Q (выход)

register R [регистр]

search S диапазон список

trace T [=адрес] [значение]

unassemble U [диапазон]

write W [адрес] [диск] [первый_сектор] [число]

выделение памяти EMS XA [число страниц]

освобождение памяти EMS XD [дескриптор]

сопоставление страниц EMS XM [Lстраница] [Pстраница] [дескриптор]

вывод состояния памяти EMS XS

Итак, команда «?» — вывод справки. Вторая команда без аргументов — «q» — выход. Для ее выполнения на приглашение DEBUG наберите:

-q<enter>

здесь «-», как и выше (и в последующем), — приглашение DEBUG к диалогу. После выполнения этой команды Вы вернетесь в вызвавшую DEBUG программу, например в Norton Commander или COMMAND.COM.

6.1.2. Команды обращения к ячейкам

К этому типу команд относятся команды:

  • просмотр дампа памяти в шестнадцатеричном и ASCII-модифицирован-ном формате — «d»;

  • редактирование памяти в шестнадцатеричном формате — «e»;

  • просмотр дамба памяти в формате команд МП 8086, 8088 — «u»;

  • ввод данных в формате команд МП 8086, 8088 — «a».

Для просмотра дампа (фрагмента) памяти введите команду «d»:

-d [адрес1 или смещение1] [адрес2 или смещение2] <enter>

Будет выведен дамп памяти от адреса1 или смещения1 до адреса2 или смещения2. Пропуск адреса1 и смещения1 говорит о том, что нужно выводить от последнего, выведенного командой d адреса; пропуск адреса2 и смещения2  что нужно вывести 8 строк (128 ячеек) дампа.

Если в любой позиции указано вместо адреса только смещения, номер сегмента будет взят из регистра DS.

Мы нигде в примерах не будем задавать номера сегментов, так как в начале работы DEBUG установит во всех сегментных регистрах номера свободных сегментов.

Дамп состоит из трех колонок: в первой колонке указывается номер сегмента и смещение в сегменте, во второй — данные в шестнадцатеричном формате, в третьей — данные в ASCII- модифицированном формате (вид символа зависит от того, как он описан в знакогенераторе дисплея), т. е. если у Вас, например, загружен русификатор дисплея — кодировка будет соответствовать т.н. «расширенной таблице ASCII», при отсутствии какого-либо внешнего драйвера на машинах западной сборки Вы увидите классическую ASCII и т.д., кроме того, DEBUG выводит только символы с кодами от 32 до 127, прочие заменяет точками. Таким образом, Вы увидите лишь специальные символы, цифры и все латинские буквы. Русские буквы и прочее будет заменено на точки.

Например, распечатать значения 128 ячеек сегмента, на который указывает DS со смещениями от 100:

-d 100 <enter>

159B:0100 FC 80 3E E7 04 00 75 03-E9 9A 00 BE E7 04 E8 41 ..>...u........A

159B:0110 02 80 3E 3C 04 00 74 6A-2E A1 2D E4 34 00 8A 15 ..><..tj..-.4...

159B:0120 01 00 BF 01 00 CD 21 72-50 8B D8 B8 00 44 CD 21 ......!rP....D.!

159B:0130 F6 C2 80 75 68 B8 02 42-B9 FF FF 8B D1 CD 21 0E ...uh..B......!.

159B:0140 1F B8 00 3F B9 01 00 BA-0D D5 CD 21 72 2B 3B C1 ...?.......!r+;.

159B:0150 75 17 80 3E 0D D5 1A 8E-1E 3A D0 75 40 B8 01 42 u..>.....:.u@..B

159B:0160 B9 FF FF 8B D1 CD 21 EB-34 2E 8E 1E 3A D0 B8 00 ......!.4...:...

159B:0170 42 33 C9 8B D1 CD 21 EB-24 3D 05 00 F9 75 03 E9 B3....!.$=...u..

Распечатать значения ячеек сегмента, на который указывает DS со смещениями от 100 до 120:

-d 100 120

159C:0100 66 B8 04 00 00 00 66 BB-08 00 00 00 66 01 D8 BA f.....f.....f...

159C:0110 01 00 BF 01 00 CD 21 72-50 8B D8 B8 34 00 8B 15 ......!rP...4...

159C:0120 F6 .

-

Распечатать значения ячеек 2732 сегмента со смещениями от 2FF9 до 3005:

-d 2732:2ff9 3005

2732:2FF0 00 00 00 00 00 00 00 .......

2732:3000 00 00 00 00 00 00 ......

-

Команда «e» позволяет вводить значения в память в шестнадцатеричном формате. Формат команды:

e <адрес или смещение> [новые значения, разделенные пробелами] <enter>

Существует два варианта ввода значений:

1. Введите команду:

e <адрес или смещение> <enter>

DEBUG выдаст следующее:

1002:0100 20.

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

Далее Вы можете:

  • модифицировать старое значение, вводя шестнадцатеричные цифры (не более двух), завершив это нажатием <enter> для выхода из редактирования или нажатием <space> для перехода к следующей ячейке;

  • не модифицировать старое значение, нажав <enter> или <space>.

2. Введите команду:

e <адрес или смещение> <новые значения, разделенные пробелом> <enter>

При этом по указанному и последующим адресам будут занесены новые значения. В обоих случаях при указании в позиции <адрес или смещение> только смещения номер сегмента будет взят из DS.

Команда «u» позволяет выдать содержимое памяти в формате команд МП 8086, 8088. Например: вывести значения ячеек сегмента DS со смещением от 100 (примерно 15 строк):

-u 100

15D0:0100 83E71F AND DI,+1F

15D0:0103 81C79600 ADD DI,0096

15D0:0107 80FC39 CMP AH,39

15D0:010A 7303 JNB 010F

Соседние файлы в папке Введение в вычислительную технику.