Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 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 -
|