Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Команды программы DEBUG





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

Для управления процессом отладки в DEBUG применяется набор команд, список которых можно получить, введя команду помощи (символ "Вопрос"). Окно отладчика, в котором выведен список поддерживаемых команд, приведено на рис. 2.2. Более подробное описание этих команд приведено в приложении.

Рис. 2.2. Окно программы DEBUG

Общими замечаниями по вводу команд отладчика является следующее:

– все команды начинаются с буквы, заглавной или строчной;

– большая часть команд требует введения дополнительных параметров, часть из которых является необязательными;

– если два подряд расположенных параметра являются числами, то они разделяются пробелом или запятой (в противном случае параметры можно не отделять один от другого);

– все числа должны вводиться в шестнадцатеричном представлении;

– некоторые команды принимают в качестве параметра адрес, который может вводиться в двух формах: полный логический адрес – два шестнадцатеричных числа, записанные через двоеточие (первое число – сегментная компонента логического адреса, второе число – смещение) и короткий адрес – одно шестнадцатеричное число (смещение);

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

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

– (A)SSEMBLE – ассемблирование;

– (U)NASSEMBLE – дизассемблирование;

– (E)NTER – ввод данных в память;

– (D)UMP – вывод содержимого участка памяти на экран;

– (R)EGISTER – просмотр и изменение содержимого регистров;

– (T)RACE – пошаговое выполнение программы;

– (N)AME – задание имени файла программы;

– (L)OAD – загрузки файла в память;

– (W)RITE – запись области памяти в файл;

– (Q)UIT – выход из отладчика.

Перечисленные команды представляют для нас наибольший интерес. Рассмотрим их подробнее.

Команда ассемблирования
(перевод мнемокода ассемблера в машинный код)

Отладчик DEBUG можно использовать для введения операторов ассемблера непосредственно в память машины. Команду ASSEMBLE можно использовать при составлении коротких программ на ассемблере, а также при внесении изменений в существующие программы. Эта команда позволяет вводить мнемокод ассемблера непосредственно в память, избавляя от необходимости транслировать (ассемблировать) программу. Вводимый текст не может включать метки перехода в чистом виде.

При введении команды, необходимо набрать " а " или " A " и, через пробел, необязательный параметр – адрес первой команды загружаемой программы. Если указан короткий адрес, то адрес сегмента выбирается из регистра CS. Если адрес не задан вообще, то машинный код будет помещаться в память, начиная с того места, где закончилась обработка предыдущей командой ASSEMBLE. Если после старта отладчика команда вводится в первый раз и в командной строке отсутствует начальный адрес, то размещение машинного кода производится с адреса CS:0100.

После введения команды ассемблирования на экране появляется начальный адрес. Это сигнал на введение первой команды программы. Если команда введена без ошибок, на экран выдается адрес следующей команды и отладчик опять переходит в режим ожидания. В случае ошибки отладчик обозначает ее месторасположение. Если введены все команды программы, то нажимается Enter – команда ASSEMBLE заканчивает работу и возвращает управление отладчику.

Пример ассемблирования небольшой программы:

-a 0976:0100

0976:0100 MOV AL,2A

0976:0102 MOV DI,0200

0976:0105 MOV CX,001D

0976:0108 CLD

0976:0109 REPNZ STOSB

0976:010B MOV AL,24

0976:010D STOSB

0976:010E PUSH ES

0976:010F POP DS

0976:0110 MOV DX,0200

0976:0113 MOV AH,09

0976:0115 INT 21

0976:0117 INT 20

0976:0119 <---- Нажимается Enter

-

Команда дизассемблирования
(перевод машинного кода в мнемокод ассемблера)

Команда UNASSEMBLE служит для перевода машинного кода на язык ассемблера. При введении команды необходимо набрать " u " или " U " и, через пробел, необязательные параметры – начальный адрес обрабатываемого кода, конечный адрес обрабатываемого кода или его размер.

В командной строке UNASSEMBLE можно не указывать начальный адрес обрабатываемого кода. Если указан короткий адрес, то адрес сегмента выбирается из регистра CS. Если адрес не задан вообще, то машинный код обрабатывается с того места, где закончилась обработка предыдущей командой UNASSEMBLE. Если после старта отладчика команда вводится в первый раз и в командной строке отсутствует начальный адрес, то обработка машинного кода производится с адреса CS:0100.

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

Другой вариант задания обрабатываемого участка памяти – задание его начального адреса и размера. Чтобы отличить размер от короткого конечного адреса перед ним вводится символ " L ".

Если размер участка памяти, обрабатываемой командой UNASSEMBLE, не определен, то по умолчанию длина обрабатываемого участка равна 32 байтам.

Результатом выполнения команды дизассемблирования является листинг программы, сгруппированный в три колонки. В листинге слева (первая колонка) указывается полный логический адрес команды. Затем (вторая колонка) – значение составляющих команду байтов в машинном коде. В третьей колонке находится соответствующая этому коду инструкция ассемблера.

Пример дизассемблирования небольшой программы, введенной в предыдущем примере:

-u CS:0100 L19

0976:0100 B02A MOV AL,2A

0976:0102 BF0002 MOV DI,0200

0976:0105 B91D00 MOV CX,001D

0976:0108 FC CLD

0976:0109 F2 REPNZ

0976:010A AA STOSB

0976:010B B024 MOV AL,24

0976:010D AA STOSB

0976:010E 06 PUSH ES

0976:010F 1F POP DS

0976:0110 BA0002 MOV DX,0200

0976:0113 B409 MOV AH,09

0976:0115 CD21 INT 21

0976:0117 CD20 INT 20

-

Date: 2015-05-23; view: 818; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.005 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию