Вторник, 24.06.2025, 06:52
БИС-4
Меню сайта
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Форма входа

ОТЛАДЧИК DEBUG

 

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

 

 Команды отладчика:

 

-D                   - вывод участка памяти или иначе называют дамп памяти - это участок в 128 байт

             пример:   -D DS:00

                              -D 40:13

    в первом случае выдастся участок памяти сегмента данных начиная с относительного адреса 00; во втором случае выдастся дамп памяти начиная с адреса 413.

-E                   -ввод данных в память в шестнадцатеричном коде начиная с определенного адреса

             пример:   -E DS:00 90 56 CD 78 45 09

    в этом случае вводятся данные 90 56 CD 78 45 09 в сегмент данных начиная с 00 относительного адреса

-R                   - просмотр содержимого всех регистров и текущей команды  с помощью этой команды можно изменить содержимое регистров

             пример:   -R IP

    в этом случае выдается значение регистра IP и можно ввести новое значение этого регистра

 

-T                   - трассировка  или пошаговое выполнение программы

-U                   -представить т.е .распечатать какую-то область  памяти в кодах ассемблера

             пример:   -U 100,120

    представление области памяти текущего сегмента кодов с 100 - 8 - по 120 смещение в кодах ассемблера

-A                   -исправление программы кодами ассемблера

             пример:   -A 120

    исправление программы представленной в памяти начиная с относительного адреса 120

-N                   -задание имени COM файла

             пример:   -N имя.COM

-W                   -создание файла с расширением COM

-Q                   -выход из DEBUG'a

 

Вызов отладчика:

 

C:\SYS\VC>debug

 

Пример: Для проверки размера  доступной для работы памяти необходимо просмотреть значение ,находящееся в памяти в ячейках 413Н и 414Н    - 400- это адрес сегмента, который записывается как 40 (последний нуль подразумевается) и - 13-это смещение от начала сегмента. Таким образом, можно ввести следующий запрос:

 

-d 40:13

 

Просмотр всех регистров:

 

-r

AX=0000  BX=0000  CX=0000  DX=0000  SP=FFEE  BP=0000  SI=0000  DI=0000

DS=1DC3  ES=1DC3  SS=1DC3  CS=1DC3  IP=0100   NV UP EI PL NZ NA PO C

1DC3:0100 DBE1                  FDISI

 

Просмотр памяти в кодах ассемблера:

 

-u 0100,0111

1DF5:0100 E9C205        JMP     06C5

1DF5:0103 0000            ADD     [BX+SI],AL

1DF5:0105 0000            ADD     [BX+SI],AL

1DF5:0107 43                 INC     BX

1DF5:0108 4F                DEC     DI

1DF5:0109 4D            DEC     BP

1DF5:010A 4D            DEC     BP

1DF5:010B 41            INC     CX

1DF5:010C 4E            DEC     SI

1DF5:010D 44            INC     SP

1DF5:010E 2E            CS:

1DF5:010F 43            INC     BX

1DF5:0110 4F            DEC     DI

1DF5:0111 4D            DEC     BP

-r

AX=0000  BX=0000  CX=FE04  DX=0000  SP=FFFE  BP=0000  SI=0000  DI=0000

DS=1DF5  ES=1DF5  SS=1DF5  CS=1DF5  IP=0100   NV UP EI PL NZ NA PO NC

1DF5:0100 E9C205        JMP     06C5

 

Изменение программы в памяти:

 

-a 0100

1DF5:0100 JMP 0121

1DF5:0102

 

Просмотр:

 

-U 0100,0111

1DF5:0100 EB1F          JMP     0121

1DF5:0102 050000        ADD     AX,0000

1DF5:0105 0000           ADD     [BX+SI],AL

1DF5:0107 43                INC     BX

1DF5:0108 4F                DEC     DI

1DF5:0109 4D               DEC     BP

 

Выполнение программы (трассировка):

 

-T

 

AX=0000  BX=0000  CX=FE04  DX=0000  SP=FFFE  BP=0000  SI=0000  DI=0000

DS=1DF5  ES=1DF5  SS=1DF5  CS=1DF5  IP=0127   NV UP EI PL NZ NA PO NC

1DF5:0127 206E6F        AND     [BP+6F],CH                         SS:006F=20

-T

 

AX=0000  BX=0000  CX=FE04  DX=0000  SP=FFFE  BP=0000  SI=0000  DI=0000

DS=1DF5  ES=1DF5  SS=1DF5  CS=1DF5  IP=012A   NV UP EI PL NZ NA PO NC

1DF5:012A 7420          JZ      014C

-T

 

AX=0000  BX=0000  CX=FE04  DX=0000  SP=FFFE  BP=0000  SI=0000  DI=0000

DS=1DF5  ES=1DF5  SS=1DF5  CS=1DF5  IP=012C   NV UP EI PL NZ NA PO NC

1DF5:012C 65            DB      65

 

Ниже приведена простая программа на машинном языке :

 

           B82301       Переслать значение 0123H в AX

           052500       Прибавить значение 0025H в AX

           8BD8         Переслать содержимое AX в BX

           03D8         Прибавить содержимое AX к BX

           8BCB         Переслать содержимое BX в CX

           2BC8         Вычесть AX из AX (чистка AX)

           90           Нет операции

           CB           Возврат в DOS

 

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

      Для печати протокола   CTRL + PRT SC

Для непосредственного ввода программы на машинном языке надо ввести следующую команду, включая пробелы:

 

-E CS:100 B8 23 01 05 25 00

-E CS:106 8B D8 03 D8 8B CB

-E CS:10C 2B C8 2B C8 90 CB

 

-R

AX=0000  BX=0000  CX=0000  DX=0000  SP=FFEE  BP=0000  SI=0000  DI=0000

DS=1DC3  ES=1DC3  SS=1DC3  CS=1DC3  IP=0100   NV UP EI PL NZ NA PO NC

1DC3:0100 B82301        MOV     AX,0123

-T

 

AX=0123  BX=0000  CX=0000  DX=0000  SP=FFEE  BP=0000  SI=0000  DI=0000

DS=1DC3  ES=1DC3  SS=1DC3  CS=1DC3  IP=0103   NV UP EI PL NZ NA PO NC

1DC3:0103 052500        ADD     AX,0025

-T

 

AX=0148  BX=0000  CX=0000  DX=0000  SP=FFEE  BP=0000  SI=0000  DI=0000

DS=1DC3  ES=1DC3  SS=1DC3  CS=1DC3  IP=0106   NV UP EI PL NZ NA PE NC

1DC3:0106 8BD8          MOV     BX,AX

-T

 

-U 100,107

1DC3:0100 B82301        MOV     AX,0123

1DC3:0103 052500        ADD     AX,0025

1DC3:0106 8BD8          MOV     BX,AX

 

-A 108

1DC3:0108 ADD BX,AX

1DC3:010A MOV CX,BX

1DC3:010C SUB CX,AX

1DC3:010E SUB AX,AX

 



Читать далее

Друзья сайта
  • $$$ для web-мастеров
  • UNDERLIGHT
  • Программы для всех
  • ЭВМ-83
  • Поиск
    Календарь
    «  Июнь 2025  »
    ПнВтСрЧтПтСбВс
          1
    2345678
    9101112131415
    16171819202122
    23242526272829
    30
    Мы с вами
    Архив записей
    Обратная связь
    Главный Администратор
    ICQ: 407-470-624
    e-mail: meloman93@mail.ru
    Copyright MyCorp © 2025

    Конструктор сайтовuCoz