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


Полезное:

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


Категории:

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






Команда пошагового выполнения программы





Команда TRACE (t или T) – трассировка осуществляет пошаговое выполнение программы в машинном коде. При трассировке после выполнения каждой команды производится останов работы программы и на экран выводятся регистры и флаги состояния процессора. Полученная картинка аналогична картинке, получаемой с помощью команды REGISTER. Разница заключается только в том, что при введении TRACE перед появлением картинки, выполняется одна команда отлаживаемой программы.

Проиллюстрируем работу TRACE на примере нашей программы. Если она не загружена в память, то запустим DEBUG и введем:

 

-e CS:0100 B0 2A BF 00 02 B9 1D 00 FC F2 AA B0 24

-e CS:010D AA 06 1F BA 00 02 B4 09 CD 21 CD 20

-

Чтобы узнать адрес программы, введем команду REGISTER:

-r

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

DS=0976 ES=0976 SS=0976 CS=0976 IP=0100 NV UP DI PL NZ NA PO NC

0976:0100 B001 MOV AL,2A

-

При введении " t " выполняется команда по адресу CS:IP. После этого на экран выводятся регистры и флаги состояния:

-t

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

DS=0976 ES=0976 SS=0976 CS=0976 IP=0102 NV UP DI PL NZ NA PO NC

0976:0102 BF0002 MOV DI,0200

-t

AX=002A BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0200

DS=0976 ES=0976 SS=0976 CS=0976 IP=0105 NV UP DI PL NZ NA PO NC

0976:0105 B91D00 MOV CX,001D

-

В командной строке TRACE можно указать адрес выполняемой команды. В этом случае после t набирается знак равенства (=) и нужный адрес. Если указан короткий адрес, то адрес сегмента выбирается из регистра CS:

-t=0100

AX=002A BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0200

DS=0976 ES=0976 SS=0976 CS=0976 IP=0102 NV UP DI PL NZ NA PO NC

0976:0102 BF0002 MOV DI,0200

-

В этом случае выполнена команда по адресу CS:0100. Адрес следующей команды находится в регистрах CS: IP. Он равен 0976:0102.

Одной командой TRACE можно одновременно трассировать несколько команд отлаживаемой программы. Для этого при введении " t " просто указывается их количество. После выполнения каждой команды на экране появляется картинка с содержимым регистров и флагов состояния. При заполнении экрана новые данные выводятся в нижней его части, сдвигая данные в верхней части за пределы экрана. Чтобы остановить движение данных вдоль экрана, нажимаются клавиши Ctrl-NumLock. Чтобы возобновить движение, нажимается любая клавиша.

При нажатии Ctrl-C трассирование прекращается и на экране появляется стандартный запрос отладчика.

Пример:

-t6

AX=002A BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0200

DS=0976 ES=0976 SS=0976 CS=0958 IP=0105 NV UP DI PL NZ NA PO NC

0976:0105 B91D00 MOV CX,001D

 

AX=002A BX=0000 CX=001D DX=0000 SP=FFEE BP=0000 SI=0000 DI=0200

DS=0976 ES=0976 SS=0976 CS=0958 IP=0108 NV UP DI PL NZ NA PO NC

0976:0108 FC CLD

 

AX=002A BX=0000 CX=001D DX=0000 SP=FFEE BP=0000 SI=0000 DI=0200

DS=0976 ES=0976 SS=0976 CS=0958 IP=0109 NV UP DI PL NZ NA PO NC

0976:0109 F2 REPNZ

0976:010A AA STOSB

 

AX=002A BX=0000 CX=001C DX=0000 SP=FFEE BP=0000 SI=0000 DI=0201

DS=0976 ES=0976 SS=0976 CS=0958 IP=0109 NV UP DI PL NZ NA PO NC

0976:0109 F2 REPNZ

0976:010A AA STOSB

 

AX=002A BX=0000 CX=001B DX=0000 SP=FFEE BP=0000 SI=0000 DI=0202

DS=0976 ES=0976 SS=0976 CS=0958 IP=0109 NV UP DI PL NZ NA PO NC

0976:0109 F2 REPNZ

0976:010A AA STOSB

 

AX=002A BX=0000 CX=001A DX=0000 SP=FFEE BP=0000 SI=0000 DI=0203

DS=0976 ES=0976 SS=0976 CS=0958 IP=0109 NV UP DI PL NZ NA PO NC

0976:0109 F2 REPNZ

0976:010A AA STOSB

-

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



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