- •4. Контрольные вопросы
- •4.1. Как записываются общие команды передачи данных на Ассемблере? Что может использоваться в качестве операндов команды?
- •4.2. Для чего предназначена команда lea и что является ее операндами?
- •4.3. Поясните выполнение команд работы со стеком.
- •4.4. Поясните выполнение команды обмена данными.
- •4.5. Для чего предназначен отладчик Turbo Debugger?
- •4.6. Объясните смысл пунктов Главного меню в верхней строке отладчика.
- •4.7. Как загрузить отлаживаемую программу?
- •4.8. Какие окна можно открыть из пункта Главного меню View ?
- •4.9. Из каких фрагментов состоит окно cpu?
- •4.18. Как через меню отладчика запустить программу на выполнение?
- •4.19. В каком окне можно наблюдать результат выполнения программы?
- •4.20. Что такое трассировка программы и как она осуществляется в отладчике?
Федеральное агентство связи
Федеральное государственное бюджетное образовательное
учреждение высшего образования
Поволжский государственный университет
телекоммуникаций и информатики
Кафедра Информационных систем и технологий
Лабораторная работа №2
По дисциплине «Инструментальные средства информационных систем»
Тема: «Изучение команд передачи данных. Основы работы
с турбо отладчиком»
Руководитель доцент к. п. н.
__________________ Никитин К.А.
Самара 2018
Цель работы: Практическое освоение основных функций TURBO DEBUGGER.
5 вариант.
Вариант 5 | ||||||
№ строки |
Команда Ассемблера |
Машинный код |
Длина машинного кода |
Логический адрес в памяти |
Физичес-кий адрес в памяти |
Состояние регистров и флагов |
5
|
Mov C,1Fh |
C60602001F |
5 байт |
5349:000F |
5349F h | |
6 |
Mov D,6 |
C606030006 |
5 байт |
5349:0014 |
534A4 h | |
17
|
Mov BX,DI |
8BDF |
2 байт |
5349:0031 |
534C1 h | |
18 |
Pop CX |
59 |
1 байт |
5349:0033 |
534C3 h | |
Hello2 5
|
Int 21 |
CD21 |
2 байт |
534B:000A |
534BA h | |
6 |
Mov ah,09 |
B409 |
2 байт |
534B:000C |
534BC h |
Просмотрите и зарисуйте область памяти, в которой хранятся данные, объявленные в сегменте данных программы (дамп памяти).
Прочитайте в трех ячейках памяти начиная с адреса F000:FFF5h дату выпуска ПЗУ BIOS в формате месяц/число/год.
4. Контрольные вопросы
4.1. Как записываются общие команды передачи данных на Ассемблере? Что может использоваться в качестве операндов команды?
Команды передачи данных (команды пересылок) предназначены для организации пересылки данных между регистрами, регистрами и памятью, памятью и регистрами, а также для загрузки регистров или ячеек памяти данными. При выполнении команд передачи данных флаги не устанавливаются.
Наиболее часто используются общие команды передачи данных:
MOV dst, src; dst:= (src).
Команда осуществляет передачу содержимого источника (src) в получатель (dst). Операндами этой команды могут быть:
регистр – регистр;
регистр – память;
память – регистр;
регистр – непосредственные данные;
память – непосредственные данные.
4.2. Для чего предназначена команда lea и что является ее операндами?
Команда загрузки исполнительного адреса загружает в регистр, указанный в качестве первого операнда, относительный адрес второго операнда, который находится в памяти:
LEA reg, mem; reg:= [mem].
4.3. Поясните выполнение команд работы со стеком.
Команды работы со стеком используются для занесения данных в стек и извлечения данных из стека. Для адресации к вершине стека используется регистр указателя стека SP, который при выполнении стековых команд автоматически модифицируется. Все стековые команды манипулируют только двухбайтовыми данными – словами.
PUSH src; SP:= (SP) – 2 , [(SP)]:= (src).
Эта команда PUSH - поместить в стек. Она уменьшает на 2 содержимое указателя стека SP и заносит на вершину стека по этому адресу двухбайтовый операнд, указанный в команде. В качестве операнда может использоваться любой 16 разрядный регистр или двухбайтовая ячейка памяти.
Команда извлечь из стека имеет формат
POP dst; dst:= [(SP)], SP:= (SP) + 2.
Команда извлекает 16 разрядные данные из ячеек стека, на которые указывает указатель SP и помещает их в получатель, указанный в команде. Содержимое SP при этом автоматически увеличивается на 2.
4.4. Поясните выполнение команды обмена данными.
Команда обмена данными позволяет обменивать содержимое любого общего регистра и ячейки памяти, либо любой пары общих регистров:
XCHG op1, op2; op1:= (op2), op2:= (op1).
Использование сегментных регистров в командах обмена запрещается.
4.5. Для чего предназначен отладчик Turbo Debugger?
Турбо отладчик (Turbo Debugger) - это современный отладчик, позволяющий отлаживать программы на уровне исходного текста и предназначенный для программистов, работающих на Турбо языках фирмы Borland.
4.6. Объясните смысл пунктов Главного меню в верхней строке отладчика.
Ё: Repaint desktop – обновить экран
Restore standard – перейти в начало программы
About – описание turbo debugger
Меню File
Open – Загружает в отладчик новую программу
Change Dir – Выполняет смену диска и/или директории
Get Info – Выдает информацию о программе
DOS Shell – Запускает командный процессор ДОС
Resident – Делает Turbo Debugger резидентным
Symbol Load – Загружает таблицу символических имен, независимую от файла .EXE.
Table Relocate – Устанавливает базовый адрес таблицы символических имен
Quit – Выполняет возврат в ДОС
Меню View
Breakpoints – Просмотр точек останова
Stack – Просмотр стека вызова
Log – Просмотр журнала событий и данных
Watche– Просмотр значений отслеживаемых переменных
Variables – Просмотр списка локальных и глобальных переменных
Module – Просмотр исходного текста модуля программы
File – Просмотр содержимого дискового файла в текстовом или шестнадцатеричном формате
CPU – Просмотр машинных команд, данных исодержимого стека
Dump – Просмотр построчного дампа области памяти
Registers – Просмотр состояния регистров и флагов процессора
Numeric Processor– Просмотр состояния сопроцессора или его эмулятора
Execution History– Выводит ассемблерный код, который был запомнен для обратной трассировки или обратного воспроизведения нажатий клавиш
Hierarchy– Выводит список объектов или типов класса и иерархическое дерево
Another
Module – Открывает еще одно окно модуля
Dump – Открывает еще одно окно дампа
File – Открывает еще одно окно файла
Меню Run
Run – Запускает программу без остановок
Go To Cursor – Выполняет программу до текущей позиции курсора
Trace Into – Выполняет одну строку исходного текста или команду
Step Over – Выполняет одну строку исходного текста без вхождения в подпрограмму
Execute To – Выполняет программу до указанного адреса
Until Return – Выполняет программу до возврата из функции
Animate – Запускает программу в непрерывном пошаговом режиме
Back Trace – Реверсирует выполнение программы на одну исходную строку или команду
Instruction Trace– Выполняет одну команду
Arguments– Устанавливает аргументы командной строки
Program Reset– Заново загружает текущую программу
Меню Breakpoint
Toggle – Переключает точку останова в текущей позиции курсора
At – Устанавливает точку останова на строке с указанным адресом
Changed Memory Global – Устанавливает глобальную точку останова, которая включается при изменении содержимого области памяти
Expression True Global – Устанавливает глобальную точку останова, которая включается, когда выражение становится истинным
Delete All – Удаляет все точки останова
Меню Data
Inspect – Позволяет проверить элемент данных
Evaluate/Modify – Вычисляет значение выражения
Add Watch – Заносит переменную в окно слежения
Function Return – Отображает значение, возвращаемое текущей подпрограммой
Меню Options
Language – Определяет язык для вычисления выражений по исходному модулю
Macros
Create – Определяет клавишный макрос
Stop Recording– Заканчивает запись макроса
Remove – Удаляет клавишный макрос
Delete All – Удаляет все клавишные макросы
Display Option– Позволяет установить опции экрана (свопинг, размер, табуляция)
Path for Source– Список директорий, в которых находятся исходные файлы
Save Options– Сохраняет на диске параметры отладчика, макросы и параметры окон
Restore Options – Восстанавливает параметры с диска
Меню Window
Zoom– Выполняет трансфокацию до полного размера окна и назад
Next – Последовательно активизирует окна, открытые на экране
Next Pane– Выполняет переход к следующему подокну текущего окна
Size/Move – Позволяет изменить размеры и положение текущего окна
Iconize/Restore – Уменьшает размер окна до небольшой пиктограммы и восстанавливает его
Close – Закрывает текущее окно
Undo Close – Отменяет последнюю команду Close
Dump Pane to Log– Записывает в окно регистрации содержимое текущего подокна
User Screen – Выводит на дисплей выход вашей программы
Open window list – Выводит список открытых окон для активации
Window Pick – Выводит меню открытых меню, если на экране их более 9
Меню Help
Index – Выводит оглавление интерактивной подсказки
Previous Topic – Выводит предыдущий экран подсказки
Help on Help – Выводит подсказку по самой интерактивной системе подсказки