Debug ebf.Com
6.10. Ввести команду отладчика U и просмотреть исходную программу.
6.11. Выполнить трассировку программы, используя команды отладчика R и T.
6.12. С помощью команды U определить адрес 6 команды программы MOV AX,0001.
6.13. С помощью команды А заменить команду MOV AX,0001 командой MOV AX,0002.
6.14. С помощью команды U проверить правильность записи команды в программу.
6.15. Выполнить трассировку измененной программы, используя команды отладчика R и Т. Объяснить, что изменилось в выполнении программы.
6.16. Выйти из отладчика вводом команды: Q.
СОДЕРЖАНИЕ ОТЧЕТА
1. В отчете должны быть приведены все программы, рассматриваемые в лабораторной работе на языке машинных кодов с приведением ассемблерных мнемонических кодов соответствующих машинному коду.
КОНТРОЛЬНЫЕ ВОПРОСЫ
1. Напишите машинные команды для:
а) пересылки значения 4629Н в регистр АХ;
б) сложения 036А с содержимым регистра АХ.
2. Предположим, что была введена следующая Е-команда:
Е CS:100 B8 45 01 05 25 00
Вместо значения 45 предполагалось 54. Напишите команду Е для корректировки только одного неправильно введенного байта, т.е. непосредственно замените 45 на 54.
3. Имеется следующая программа в машинных кодах:
B0 25 D0 E0 B3 15 F6 E3 CB
Программа выполняет следующее:
- пересылает значение 25Н в регистр AL;
- сдвигает содержимое регистра AL на один бит влево (в результате в AL будет 4А);
- пересылает значение 15Н в регистр BL;
- умножает содержимое регистра AL на содержимое регистра BL.
Используйте отладчик для ввода (Е) этой программы по адресу CS:100. Не, забывайте, что все значения представлены в шестнадцатиричном виде. После ввода программы наберите D CS:100 для просмотра сегмента кода. Затем введите команду R и необходимое число команд Т для пошагового выполнения программы до команды RET. Какое значение будет в регистре АХ в результате выполнения программы?
4. Используйте отладчик для ввода (Е) следующей программы в машинных кодах:
Данные: 25 15 00 00
Код: A0 00 00 D0 E0 F6 26 01 00 A3 02 00 CB
Программа выполняет следующее:
- пересылает содержимое одного байта по адресу DS:00 (25) в регистр AL;
- сдвигает содержимое регистра AL влево на один бит (получая в результате 4А);
- умножает AL на содержимое одного байта по адресу DS:01 (15);
- пересылает результат из АХ в слово, начинающееся по адресу DS:02.
После вводе программы используйте команды D для просмотра сегмента данных и сегмента кода. Затем введите команду R и необходимое число команд Т для достижения конца программы (RET). В этот момент регистр АХ должен содержать результат 0612. Еще раз используйте команду D DS:00 и определите какое значение записано по адресу DS:02.
ОТВЕТЫ:
1. а) В82946, б) 056А03
2. E CS:101 54
3. 0612
4. 12 06