Форум программистов, компьютерный форум, киберфорум
Assembler, MASM, TASM
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.76/75: Рейтинг темы: голосов - 75, средняя оценка - 4.76
Деструктор ума
22 / 22 / 0
Регистрация: 07.03.2009
Сообщений: 326
1

не могу разобраться с отладчиком ( Turbo debugger )

02.10.2010, 10:10. Показов 15178. Ответов 16
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день господа!

Начал изучать ассемблер и
не могу разобраться с отладчиком ( Turbo debugger )
Скачал мануалы и решил не просто читать, а поэтапно пройтись с программой по всем возможностям отладчика..

Вот простейший код :
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
.model small
.stack 100h
.data
mes db 'Privet!',13,10,'$'
.code
mov ax, @data
mov ds, ax
mov ah, 09h
mov dx, offset mes
int 21h
mov ah, 4ch
int 21h
end
Хотелось бы попросить вашей помощи, чтобы хотя бы на этом примере показать основные функции отладчика. Лчше б конечно в скринах, чтобы легче мне было понять, куда там курсор ставить 8)
Заранее спасибо!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.10.2010, 10:10
Ответы с готовыми решениями:

Turbo Debugger
Привет Простите за глупый вопрос (а может он и не глупый, не знаю) Суть такова, что при...

Отладчик Turbo Debugger
Почему Turbo Debugger очень сильно загружает процессор? Вот как его запускаешь так диспетчер задач...

Turbo Debugger не хочет работать
При попытке запуска Turbo Debugger'a (tb.ex), всё нормально, но когда открываю в нём...

Turbo Debugger не видит программу.
Здравствуйте! Начал изучать ассемблер по самоучителю. Сейчас разбираюсь с 16-битными программами....

16
158 / 105 / 6
Регистрация: 22.08.2010
Сообщений: 215
02.10.2010, 11:23 2
Сейчас уже за давностью не помню, но основное в принципе это F7 и F8.
Загружаешь свою программу в отладчик, далее жмякаешь:
F7 - выполняет программу по одной инструкции. Лезет во все CALL'ы, выполняет все LOOP'ы CX количество раз и тд. То-есть работает так, как работает процессор.
F8 - выполняет программу несколько ускоренно. Не лазиет в CALL'ы, проходит все LOOP'ы за один раз и тд.

Оба режима можно чередовать. Например дебажим программу:
Assembler
1
2
3
4
5
6
7
8
9
10
11
mov ax,123   ; Здесь можно нажать F7, перескочим на следующую инструкцию
call PrintHexAx ; Если здесь нажать F7 - перескочим на выполнение процедуры, если F8 - процедура
; выполниться за один проход и мы не увидим хода выполнения процедуры
mov al,65 ; здесь без разницы F7 или F8
int 29h ; тоже без разницы
 
mov cx,255 ; в CX = 255, add dx,cx должно прокрутиться 255 раз. Можно жать F7 или F8, без разницы
big_loop:
add dx,cx ; чото делаем, неважно что
loop big_loop ; и зацикливаемся на 255 раз. А вот тут если нажать F7 перескочим на метку big_loop и
; так 255 раз. (255 раз будем жать F7). А можно нажать F8 и цикл автоматически провернется 255 раз.
Ну а вообще в гугле есть наверное информация по Turbo Debuger, можно искать по запросам "работа в Turbo Debugger", "использование Turbo Debugger" и тд. Удачи
2
Деструктор ума
22 / 22 / 0
Регистрация: 07.03.2009
Сообщений: 326
02.10.2010, 14:23  [ТС] 3
ну а так, есть народ, кто полностью облазил турбо деббугер на примере одной программы?
Вот к примеру раздел cpu
Как мне там найти, что мне нужно 8)
Вообщем, жду еще ответов...
0
2014 / 1286 / 61
Регистрация: 05.06.2010
Сообщений: 2,213
02.10.2010, 14:32 4
Цитата Сообщение от log Посмотреть сообщение
Как мне там найти, что мне нужно
отлично поставлен вопрос! А можно немного поконкретнее?

Добавлено через 1 минуту
есть поиск по инструкции и по машинному коду. Ни то ни другое мне ни разу не помогло)
0
2537 / 833 / 10
Регистрация: 31.05.2009
Сообщений: 1,668
02.10.2010, 14:42 5
Лично для меня при отладке своей программы практически всегда хватает трассировки (F7, F8), просмотра данных(нижняя половина экрана) и регистров(справа).
2
2014 / 1286 / 61
Регистрация: 05.06.2010
Сообщений: 2,213
02.10.2010, 14:55 6
иногда приходится отдельно открывать дамп (внизу по умолчанию psp - не знаю, может у меня так настроено), т.е когда меняется ds данные внизу экрана показывают c es:0000

Добавлено через 9 минут
кстати у меня тоже вопрос по td - можно ли посмотреть данные другого сегмента? я обычно если сильно надо вставляю несколько nop и в отладчике заменяю их на mov ax, нужный_мне_адрес_сегмента mov ds, ax и вызываю дамп. Можно ли это сделать как нибудь проще?
1
2537 / 833 / 10
Регистрация: 31.05.2009
Сообщений: 1,668
02.10.2010, 15:05 7
Цитата Сообщение от vital792 Посмотреть сообщение
иногда приходится отдельно открывать дамп (внизу по умолчанию psp - не знаю, может у меня так настроено), т.е когда меняется ds данные внизу экрана показывают c es:0000
Добавлено через 9 минут
кстати у меня тоже вопрос по td - можно ли посмотреть данные другого сегмента? я обычно если сильно надо вставляю несколько nop и в отладчике заменяю их на mov ax, нужный_мне_адрес_сегмента mov ds, ax и вызываю дамп. Можно ли это сделать как нибудь проще?
Собственно правой кнопкой мыши дампу(нижней половине экрана) -> Go to. И ввести аддрес со знаком ':'
DS:100 или 4354:0a230 например
1
2014 / 1286 / 61
Регистрация: 05.06.2010
Сообщений: 2,213
02.10.2010, 15:08 8
он передает управление на этот адрес а мне надо только посмотреть дамп. Но все равно спасибо
0
2537 / 833 / 10
Регистрация: 31.05.2009
Сообщений: 1,668
02.10.2010, 15:09 9
Цитата Сообщение от vital792 Посмотреть сообщение
он передает управление на этот адрес а мне надо только посмотреть дамп. Но все равно спасибо
Я же сказал, что кликать нужно по дампу, а не по коду.
1
65 / 65 / 1
Регистрация: 14.04.2010
Сообщений: 170
02.10.2010, 15:13 10
можно выбрать в верхней части окна VIEW и там выбрать REGISTERS и потом откроется окно основных регистров. Надо выбрать нужный и ввести необходимый сегмент или смещение!
2
2014 / 1286 / 61
Регистрация: 05.06.2010
Сообщений: 2,213
02.10.2010, 15:18 11
точно. работает

Добавлено через 4 минуты
Цитата Сообщение от assemb Посмотреть сообщение
можно выбрать в верхней части окна VIEW и там выбрать REGISTERS и потом откроется окно основных регистров. Надо выбрать нужный и ввести необходимый сегмент или смещение!
так тоже работает! неплохой отладчик оказывается. я привык к olly а td оказывается поддерживает почти все что нужно. Просто редко приходится писать под дос)
0
Деструктор ума
22 / 22 / 0
Регистрация: 07.03.2009
Сообщений: 326
03.10.2010, 12:07  [ТС] 12
Ну и все равно, чтобы в отладчике работать, нужно знать отладкой чего я буду заниматься 8)
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
.model small  ;я так понимаю определенная модель, выбор зависит от того, что мы собираемся делать
.stack 100h ;выделение 256 байтов
.data 
mes db 'Privet!',13,10,'$' ;mes это имя, а db это размерность
.code
mov ax, @data ;собственно тут происходит помещение адреса начала сегмента данных в регистор ax
mov ds, ax ;значения ах помещаем в ds
mov ah, 09h ;не понял что тут
mov dx, offset mes ;относительный адрес переменной mes помещаем в dx
int 21h ;это я так понимаю прерывание, и очень плохо себе представляю, что это означает
mov ah, 4ch ; и эти
int 21h  ; 3 строки
end ; не знаю для чего ...
Объясните пожалуйста
0
2014 / 1286 / 61
Регистрация: 05.06.2010
Сообщений: 2,213
03.10.2010, 13:15 13
весь дос построен на 21h прерывании. Заносишь в ah номер функции, в другие регистры параметры(если нужны) и вызываешь int 21h(типа как системные вызовы в linux int 0x80, тока проще и в реальном режиме)
Цитата Сообщение от log Посмотреть сообщение
mov ah, 09h ;не понял что тут
номер функции 09 - вывести строку(в dx адрес строки)
Цитата Сообщение от log Посмотреть сообщение
mov ah, 4ch ; и эти
номер 4ch - завершение программы
1
Деструктор ума
22 / 22 / 0
Регистрация: 07.03.2009
Сообщений: 326
03.10.2010, 15:59  [ТС] 14
Не пойму почему ругается на команду View-> Windows Message
В моем именно коде...
Он у меня на это нажатие вообще никак не реагирует
0
2014 / 1286 / 61
Регистрация: 05.06.2010
Сообщений: 2,213
03.10.2010, 16:45 15
Цитата Сообщение от log Посмотреть сообщение
View-> Windows Message
так это вроде как под дос программа) никаких оконных сообщений тут нет)
0
Деструктор ума
22 / 22 / 0
Регистрация: 07.03.2009
Сообщений: 326
26.10.2010, 21:51  [ТС] 16
А как вывести значения регистра в окно командной строки?
К примеру имеет операцию сложения
Assembler
1
add ax, cx
Как вывести то, что в ах?
В тд, то я вижу результат , а как в смд вывести?
0
2537 / 833 / 10
Регистрация: 31.05.2009
Сообщений: 1,668
26.10.2010, 22:13 17
https://www.cyberforum.ru/asse... 54461.html
0
26.10.2010, 22:13
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.10.2010, 22:13
Помогаю со студенческими работами здесь

Дамп памяти в Turbo Debugger
Как в TD просмотреть область памяти, в которой хранятся данные, объявленные в сегменте данных...

Работа в Turbo Debugger (TD в пакете TASM)
Как определите начальные и конечные адреса сегмента данных, сегмента стека и сегмента кодов в TD?

Turbo Debugger (Version 5.5)и программы типа com.__
Доброй Ночи!!!Уважаемые знатоки_ассемблерщики почему отладчик фирмы БорланД Turbo Debugger (Version...

Где найти и как установить Turbo Debugger?
Хочу поучиться в Turbo Debugger, но нигде не могу найти его. Нужен на windows 7 х64. Или я не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru