Консультация № 191424
03.10.2017, 18:35
0.00 руб.
0 9 1
Уважаемые эксперты! Пожалуйста, ответьте на вопросы:

читаю книгу (первые две главы) О.А.Калашникова, где рекомендуется использовать отладчики Afd Pro или CodeView. я загрузил из Интернета архив AFD Pro, где имеются afd.com, afdpro.exe, afdproun.exe, fake2.exe файлы.

1) подскажите пожалуйста - какое отличие между этими исполняемыми файлами ?
2) я запускал все из них - пробовал (экспериментировал-учился) вводить команды mov al, 1Fh, add al, 9 в строку CMD> с мигающим курсором, затем нажимал Enter - программы выводили сообщение об ошибке: "Syntax Error" (afd.com) либо "Unknown command" (afdpro.exe). как правильно вводить команды (например mov, add, inc, sub) в данный отладчик ?
3) как выйти из отладчика обратно в DOS Box ? - может быть имеются "горячие" клавиши или их комбинация ? - в меню (внизу экрана AFD Pro) я не нашел команды "Exit" (выход - в DOS Box) и "Run" (прогонка командных строк на экране).
4) имеется ли учебник либо Manual по Afd Pro ? где можно загрузить ? - чтобы научиться пользоваться данным отладчиком (в Интернете я не нашел соответствующий Manual).
5) имеется ли учебник или Manual по CodeView ? где можно загрузить ? - тоже, чтобы научиться пользоваться данным отладчиком.

Спасибо.

Обсуждение

давно
Старший Модератор
31795
6196
03.10.2017, 18:56
общий
03.10.2017, 18:58
Адресаты:

Отладчик работает с уже скомпилированными программами.
Нажав F4, вы попадаете в окно встроенной справки, я на рисунке специально выбрал эту команду, которую Вы должны будете набрать в строке CMD> с именем отлаживаемой программы.
Основные Ваши команды в первое время этоF1(шаг за шагом) и F2(шаг с пропуском подпрограмм, циклов и т.д.)
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

давно
Старший Модератор
31795
6196
03.10.2017, 18:59
общий
Адресаты:
как выйти из отладчика обратно в DOS Box

quit
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

давно
Посетитель
401339
51
03.10.2017, 19:42
общий
Адресаты:
Уважаемый Константин Николаевич, здравствуйте,

спасибо за Ваши сообщения.

1) команда L <files.com> работает только в том случае, если .com файл находится в одной директории с afd.exe/afdpro.exe. однако отладчик может загрузить <file.com> и из любой другой директории (где находится исполняемый файл), если в командной строке DOS Box набрать "afd file.com" - для этого в confyg-файле DOS Box необходимо прописать соответствующий PATH (как в обычном DOS-е).
2) версия afdpro.exe не удобна для справки - маленькое узкое окошко (не наглядно) - для новичков необходимо использовать версию afd.exe и нажать F4, где справка появляется во весь DOS Box экран - это наглядно.

Константин Николаевич, постепенно начинаю разбираться в AFD отладчике, однако многое пока непонятно (из справки) - пока начинаю работать с клавишами F1 и F2.

Спасибо.
давно
Посетитель
401339
51
03.10.2017, 21:02
общий
Адресаты:
Уважаемый Константин Николаевич и эксперты,
добрый вечер,

попробовал по-экспериментироваться с mov и add - посылаю вам прикрепленный файл со скриншотами программы на Ассемблере и отладчика, куда был загружен соответствующий com-файл. оказывается, что отладчик "не видит", то есть не распознает первую команду:
mov al, 2
в результате, когда я нажимаю F1 будучи на строке "ADD AL, 03" я не получаю число 5, которое можно увидеть в регистре AX (левый верхний угол в AFD-DOS Box) - остается только число 3, что является не верным результатом.

подскажите, пожалуйста, может быть я что-нибудь не правильно делаю ? либо это проблема (bug) самого отладчика Afd Pro ?

Спасибо.
Прикрепленные файлы:
2da9e915b7e2f0cc32cfd7ccede2801c.jpg
давно
Посетитель
401339
51
03.10.2017, 21:44
общий
Уважаемый Константин Николаевич и эксперты,

я разобрался в чем возникают проблемы - для отладки я использовал версию afd.exe, которая была разработана в 1985 году и, вероятно, разработчики в то время не все учли при написании компьютерного кода AFD-программы-отладчика - таким образом в этой ранней версии остались bug-и - это все естественно для любых компьютерных продуктов-софта. с другой стороны версия afdpro.exe разрабатывалась в 1987-1992 годах, в которой очевидно bug-и (проще сказать ошибки при дизайне и написании компьютерного кода) были устранены. это означает, что вопросы, которые я поднял в предыдущих двух сообщениях, являются решенными в версии afdpro.exe - я проверил свои вопросы на примере версии afdpro.exe.
поэтому для правильной отладки com- и exe-файлов необходимо использовать более позднюю версию отладчика, а именно afdpro.exe. с другой стороны - справкой (для хорошего восприятия и наглядности) об AFD Pro отладчике - для изучения - необходимо пользоваться в ранней версии afd.exe.

Спасибо за ваше взаимопонимание.
давно
Старший Модератор
31795
6196
04.10.2017, 15:19
общий
это ответ
Здравствуйте, ialmiev!

В сам отладчик AFDpro встроена справка по командам F4. Все эти команды набираются в строке CMD>, при наборе команд показывается упрощенная подсказка. Для работы, первое время Вам нужно будет всего несколько команд:
G - выполнение программы;
L - загрузка программы в отладчик(если нужно с другой директории - нужно указывать полный/относительный);
M1 - настройка правого окна дампа памяти(для контроля команд работы с памятью);
M2 - настройка нижнего окна дампа памяти;
QUIT - выход из отладчика.

И две функциональные клавиши:
F1 - выполнить одну команду;
F2 - выполнить одну команду, подпрограммы, циклы и т.д. выполняются как одна команда.

Удачи!
5
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

давно
Посетитель
401339
51
04.10.2017, 20:45
общий
Адресаты:
Уважаемые Константин Николаевич и эксперты,
здравствуйте,

продолжаю осваивать отладчик AfdPro и книгу О.А.Калашникова (главы 1-3). у меня вопрос по поводу команды M1 отладчика afdpro.exe (рисунок приводится для наглядности):
в справке по данной команде написано: M1 addr | seg_reg. на основе глав 2 и 3 я освоил основы регистров и offset (фактически адреса в ОЗУ компьютера). "addr" - мне понятен - это может быть, например, CS:0102 - тогда команда, M1 CS:0102, покажет в окошке window 1 содержимое сегмента кода, CS, с офсетом 0102 (фактически содержимое памяти с данным адресом - сегмент:офсет) в шестнадцатиричном представлении в восьми (0 1 2 ... 7) столбиках.
вопросы:
1) что такое seg_reg ? и для чего этот параметр нужен ?
2) что означает предложение в справке данной команды M1: "Use the form [register] to use current contents of the given register as offset" ? что такое параметр [register] ? откуда он возник в данной команде (в это команде присутствует же только параметр seg_reg) ?

Спасибо.
Прикрепленные файлы:
aa77c0c282595cf6fe0253ae2e74d52b.jpg
давно
Посетитель
401339
51
05.10.2017, 20:47
общий
Адресаты:
Уважаемые Константин Николаевич и эксперты,
здравствуйте,

я разобрался со своими вопросами, заданными вам в предыдущем сообщении насчет: M1 addr | seg_reg. это очередной bug (ошибка), проникшая в Help (Помощь-краткая инструкция). правильным использованием команды M1 будет, например:

M1 CS: 0102
M1 0FG1A:0107, где 0FG1A номер (не путать с адресом) какого-либо сегмента
M1 0105, где 0105 номер офсета (сдвига в сегменте)

в этом можно убедиться, если поэкспериментировать (или "поиграть" - это жаргон программистов) с каким-либо com-файлом в отладчике afd.pro.

исходя из своего опыта работы с Linux-ом могу предположить, что данный отладчик AfdPro разрабатывался изначально в ОС Unix (это в 1980-е года, а может быть и раньше), где присутствует команда (можно так сказать), называемая "pipe" (переводится с английского языка как "трубопровод"), а в русской версии "конвейер". очевидно, что эта аналогия повлияла на разработчика текстовых кратких инструкций-объяснений в Help отладчика AfdPro - а на самом же деле в самом компьютерном коде (программе) AfdPro, написанном изначально в ОС Unix, была реализована версия команды M1, которую я представил выше.

Спасибо за ваше взаимопонимание.
давно
Старший Модератор
31795
6196
09.10.2017, 09:10
общий
Адресаты:
В будущем пользуйтесь мини-форумом, а не кнопкой сообщить модераторам. Не думаю, что всем модераторам нравится когда их отвлекают.
Цитата: скопировано сообщение модераторам
Уважаемый Константин Николаевич, здравствуйте, спасибо за Ваши сообщения, объясняющие как пользоваться отладчиком AfdPro (afdpro.exe). при возникновении новых вопросов по отладчикам и ассемблеру - перешлю их (вопросы) через форум. в настоящее время осваиваю главу 3 из книги О.А.Калашникова. еще раз спасибо. с уважением ialmiev.
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

Форма ответа