Отладка программы на языке ассемблера в Turbo debugger — КиберПедия 

Кормораздатчик мобильный электрифицированный: схема и процесс работы устройства...

История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...

Отладка программы на языке ассемблера в Turbo debugger

2022-11-24 22
Отладка программы на языке ассемблера в Turbo debugger 0.00 из 5.00 0 оценок
Заказать работу

Отладчик Turbo Debugger представляет собой оконную среду отладки программ на уровне исходного текста. Он позволяет решить две основные задачи [5, 16]:

1. Определить место логической ошибки.

2. Определить причину логической ошибки.

Turbo Debugger дает возможность по шагам проследить процесс выполнения программы на уровне регистров процессора и ячеек памяти. Это позволяет определить местоположение и источник ошибки в программе. Следует отметить, что отладчик не позволяет вносить изменения в исходный текст программы; они вносятся в исходный файл с расширением. asm, после чего заново создаются объектный и загрузочный модули как описано выше.

Запуск отладчика осуществляется из командной строки с указанием исполняемого модуля:

td имя_файла.exe

Для отладки исполняемого файла sum1.exe вызов отладчика осуществляется командой

td sum1.exe

Окно флагов

В результате на экране появляется окно отладчика, как показано на рисунке 9.

Окно данных
Окно стека
Окно кода
Окно регистров
Рис.9. Окно отладчика Turbo Debugger

Окно отладчика имеет пять рабочих областей: окно кода, окно данных, окно стека, окно регистров процессора, окно флагов процессора. Важно отметить, что выводимая в них информация представлена в шестнадцатеричном виде. В каждый момент времени активным может быть только одно из них. Активизация любого окна осуществляется щелчком мыши в любой его видимой точке. По умолчанию активным является окно кода.

В окне кода отображается содержимое сегмента кода отлаживаемой программы. Каждая строка этого окна содержит следующую информацию о команде: адрес в виде сегмент:смещение (например, cs:0000), машинный код, ассемблерный код. Следует заметить, что все символьные адреса сегментов и ячеек памяти заменяются абсолютными или относительными (в квадратных скобках) адресами в виде числовых констант.

В окне данных отображается содержимое сегмента данных отлаживаемой программы (при его наличии): адрес ячейки памяти в виде сегмент:смещение (например, ds:0000), содержимое ячейки в виде числовой константы, символ из таблицы ASCII, если числовая константа соответствует его ASCII-коду.

В окне стека отображается содержимое сегмента стека отлаживаемой программы (при его наличии): адрес ячейки сиека в виде сегмент:смещение (например, ss:001 A), содержимое ячейки в виде числовой константы.

В окне регистров отображается содержимое регистров процессора Intel 8086, доступных для работы в реальном режиме, который поддерживает компилятор TASM.

В окне флагов отображаются значения флагов процессора Intel 8086.

Управление работой отладчика осуществляется с помощью системы меню или функциональных клавиш, расположенных в нижней части экрана. Главное меню находится в верхней части экрана,  контекстное меню доступно для каждого окна и вызывается путем активизации соответствующего окна и щелчка правой кнопкой мыши для выбора нужного пункта меню.

Для проверки функционирования программы удобно использовать функциональные клавиши F 7 (трассировка) и F 8 (пошаговое выполнение). Трассировка по F 7 отличается от пошагового выполнения по F 8 тем, то при наличии подпрограмм при трассировке будет по шагам выполняться не только основная программа, но и каждая подпрограмма, которая вызывается из основной программы. А при пошаговом выполнении по F 8 по шагам выполняется только основная программа, а каждая подпрограмма выполняется как единый оператор.

Текущая выполняема команда выделяется синим цветом. После выполнения команды на экране появляется содержимое регистров, флагов и адрес следующей по очереди команды (соответствующие регистры и флаги подсвечиваются белым цветом).

Завершение работы с отладчиком осуществляется командой File / Quit из главного меню или нажатием сочетания клавиш Alt + X.

Теперь можно проверить, каким образом выполняется программа на компьютере, какие изменения происходят в регистрах процессора и ячейках памяти.

Из рисунка 9 видно, что выполнение программы сложения двух чисел начинается с первой команды (с нулевым смещением относительно начала сегмента кода, адрес которого расположен в регистре cs и равен 48 F 0 h). Данная команда пересылает в регистр ax адрес начала сегмента данных выполняемой программы. Важно отметить, что символьный адрес d _ s из исходного текста программы заменен абсолютным адресом ячейки памяти и равен 48 EFh. После выполнения изменяется содержимое регистра ax и осуществляется переход к следующей команде, адрес которой в сегменте кода равен 0003, о чем свидетельствует изменившееся значение регистра ip, как показано на
рисунке 10.

Рис. 10. Значения регистров после выполнения первой команды

Следующая команда пересылает значение регистра ax в сегментный регистр ds, сообщая процессору местонахождение сегмента данных в памяти. После этого сегмент данных исполняемой программы становится доступным и его содержимое можно вывести в окне данных. Для этого можно вызвать контекстное меню окна данных, выбрать в нем команду Goto, указать адрес ячейки сегмента данных и нажать OK. Для выполняемой программы содержимое сегмента данных, с самого начала (с нулевой ячейки), как показано на рисунке 11.

На рисунке 12 видно, что сегмент данных состоит из трех двухбайтовых ячеек (обведены рамкой) с адресами 0, 2 и 4, соответственно. В ячейках со смещениями 0 и 1 хранится число 7145 h, в ячейках со смещениями 2 и 3 – число 0023 h, в ячейках со смещениями 4 и 5 – число 00 h. Следует отметить, что все перечисленные числовые константы хранятся в памяти в перевернутом виде, поскольку их размер превышает байтовый диапазон.

Выполнение следующей команды заключается в пересылке значения из ячейки со смещением 0 (вместо символьного адреса aa указывается смещение [0000 h ]) в регистр ax, т.е. числа 7145 h, что также отражено на рисунке 12.


Рис.11. Ввод адреса ячейки памяти в контекстном меню


окна данных

 
Рис. 12. Содержимое памяти и регистров после выполнения

трех первых команд программы

Следующая команда выполняет сложение текущего содержимого регистра ax, т.е. числа 7145 h, и значения ячейки памяти со смещением 0002 h, т.е. числа 0023 h. Причем в отладчике можно увидеть, каким образом выполняется операция сложения: суммируются два операнда, а результат помещается на место первого операнда. В данном случае значение 7168h помещается в регистр ax, что отражено на
рисунке 13.

Рис. 13. Содержимое памяти и регистров после выполнения

команды сложения


Выполнение следующей команды приводит к записи содержимого регистра ax в ячейку памяти со смещением 0004 h, т.е. числа 7168 h. При этом в памяти данное число также будет представлено в перевернутом виде. Состояние регистров процессора и ячеек памяти сегмента данных представлено на рисунке 14.

Рис. 14. Содержимое ячеек памяти и регистров после выполнения пяти команд

Две последующие команды приводят к завершению работы программы и выводом соответствующего сообщения, как показано на рисунке 15.

Рис.15. Сообщение о завершении работы программы

Таким образом, используя наглядные и выразительные средства отладчика Turbo Debugger, можно легко проследить процесс выполнения программы на языке ассемблера и увидеть особенности выполнения ассемблерных команд, представления информации в памяти вычислительной машины.


ЛИТЕРАТУРА

1. DOSBox [Электронный ресурс]. – Режим доступа: https://ru.wikipedia.org/ wiki/ DOSBox. – Систем. требования: P IV; 64 Мб ОЗУ; Windows 98 и выше; SVGA 32768 и более цветов; 640×480; мышь; IE 4.0 и выше. – Загл. с экрана.

2. DOSBox 0.74 – эмулятор DOS-окружения на современных компьютерах [Электронный ресурс]. – Режим доступа: https://softclipper.net/utility-i-soputstvuyuschie-programmy/dosbox-0-74-emulyator-dos-okruzheniya-na-sovremennykh-kompyuterakh.html. – Систем. требования: P IV; 64 Мб ОЗУ; Windows 98 и выше; SVGA 32768 и более цветов; 640×480; мышь; IE 4.0 и выше. – Загл. с экрана.

3. MASM, TASM, FASM, NASM под Windows и Linux [Электронный ресурс]. – Режим доступа: https://habr.com/ru/post/326078/. – Систем. требования: P IV; 64 Мб ОЗУ; Windows 98 и выше; SVGA 32768 и более цветов; 640×480; мышь; IE 4.0 и выше. – Загл. с экрана.

4. Андриенко Д. Погружение в ассемблер [Электронный ресурс]. – Режим доступа: https://xakep.ru/2017/09/11/asm-course-1/#xakepcut. – Систем. требования: P IV; 64 Мб ОЗУ; Windows 98 и выше; SVGA 32768 и более цветов; 640×480; мышь; IE 4.0 и выше. – Загл. с экрана.

5. Ассемблер с нуля [Электронный ресурс]. – Режим доступа: http://assembler-code.com/. – Систем. требования: P IV; 64 Мб ОЗУ; Windows 98 и выше; SVGA 32768 и более цветов; 640×480; мышь; IE 4.0 и выше. – Загл. с экрана.

6. Выполнение программ на языке ассемблера [Электронный ресурс].– Режим доступа: http://stilus-doctus.narod.ru/tasm/ tasm_2.html. – Систем. требования: P IV; 64 Мб ОЗУ; Windows 98 и выше; SVGA 32768 и более цветов; 640×480; мышь; IE 4.0 и выше. – Загл. с экрана.

7. Записки программиста. Написание и отладка кода на ассемблере x86/x64 в Linux [Электронный ресурс].– Режим доступа: https://eax.me/linux-assembler/. – Систем. требования: P IV; 64 Мб ОЗУ; Windows 98 и выше; SVGA 32768 и более цветов; 640×480; мышь; IE 4.0 и выше. – Загл. с экрана.

8. Использование GNU ассемблера as.: Архитектурные особенности [Электронный ресурс].– Режим доступа: https://www.opennet.ru/docs/RUS/gas/gas-8.html. – Систем. требования: P IV; 64 Мб ОЗУ; Windows 98 и выше; SVGA 32768 и более цветов; 640×480; мышь; IE 4.0 и выше. – Загл. с экрана.

9. Конюхова, О.В. Программное обеспечение вычислительных машин и систем. Программирование на языке ассемблера: Практикум [Текст]/ О.В. Конюхова, Э.А. Кравцова.- Орёл: Изд-во ОГУ имени И.С. Тургенева, 2016. – 130 с.

10. Национальная библиотека имени Н.Э. Баумана. Ассемблер [Электронный ресурс]. – Режим доступа: https:// https://ru.bmstu.wiki/Ассемблер. – Систем. требования: P IV; 64 Мб ОЗУ; Windows 98 и выше; SVGA 32768 и более цветов; 640×480; мышь; IE 4.0 и выше. – Загл. с экрана.

11. Обзор языков ассемблера и макроассемблера [Электронный ресурс].– Режим доступа: https://vuzlit.ru/977980/ obzor_yazykov_ assemblera_makroassemblera. – Систем. требования: P IV; 64 Мб ОЗУ; Windows 98 и выше; SVGA 32768 и более цветов; 640×480; мышь; IE 4.0 и выше. – Загл. с экрана.

12. Пирогов, П.Ю. ASSEMBLER. Учебный курс [Текст]/ П.Ю. Пирогов. – М.: Издатель Молгачева С.В. – Нолидж, 2001. – 848 с. – ил.

13. Синтаксис команд (Intel, AT&T) [Электронный ресурс].– Режим доступа: https://stepik.org/lesson/20059/step/1?unit=4746. – Систем. требования: P IV; 64 Мб ОЗУ; Windows 98 и выше; SVGA 32768 и более цветов; 640×480; мышь; IE 4.0 и выше. – Загл. с экрана.

14. Структура программы на ассемблере [Электронный ресурс].– Режим доступа: http://kit.znu.edu.ua/eDoc/Arch/assembl/guide/Text/ Structur.htm – Систем. требования: P IV; 64 Мб ОЗУ; Windows 98 и выше; SVGA 32768 и более цветов; 640×480; мышь; IE 4.0 и выше. – Загл. с экрана.

15. Установка и настройка FASM [Электронный ресурс].– Режим доступа: http://www.manhunter.ru/assembler/ 31_ustanovka_i_nastroyka_ flat_assembler_fasm.html.– Систем. требования: P IV; 64 Мб ОЗУ; Windows 98 и выше; SVGA 32768 и более цветов; 640×480; мышь; IE 4.0 и выше. – Загл. с экрана.

16. Юров, В.И. Assembler [Текст]/ В.И. Юров.- Учебник для вузов.- 2-е издание.- СПб.: Питер, 2006.- 637 с.: ил.- ISBN: 5-94723-581-1

17. Юров, В.И. Assembler. Практика [Текст]/ В.И. Юров.- Учебник для вузов.- 2-е издание.- СПб.- Питер, 2006.- 399 с.: ил.- ISBN: 5-94723-671-0

18. Язык ассемблера [Электронный ресурс].- Режим доступа: https://prog-cpp.ru/category/asm-posts/. – Систем. требования: P IV; 64 Мб ОЗУ; Windows 98 и выше; SVGA 32768 и более цветов; 640×480; мышь; IE 4.0 и выше. – Загл. с экрана.


 

Учебное издание

 

Конюхова Оксана Владимировна

 

Кравцова Эльвира Александровна

 


Поделиться с друзьями:

Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьше­ния длины пробега и улучшения маневрирования ВС при...

Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...

Эмиссия газов от очистных сооружений канализации: В последние годы внимание мирового сообщества сосредоточено на экологических проблемах...

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



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.025 с.