- •Программирование на ассемблере masm32 в среде radAsm с использованием 32-разрядного отладчика OlleDbg
- •Лабораторная работа № 1. Изучение среды и отладчика ассемблера
- •1. Начало работы со средой
- •2. Запуск заготовки приложения
- •3. Создание простейшей программы
- •4. Просмотр выполнения программы в отладчике
- •5. Описание данных в программе на ассемблере
- •Задание
- •1. Форматы машинных команд ia-32
- •Лабораторная работа № 2 Программирование целочисленных вычислений
- •100010Dw Mod Reg Reg См.Мл.Байт
- •100010Dw Mod Reg Mem ss Ind Base См.Мл.Байт
- •2. Команды целочисленной арифметики ia-32
- •4. Команда обмена данных
- •3. Пример линейной программы
- •4. Организация ввода-вывода
- •Задание
- •Приложение Наиболее важные настройки среды radAsm
- •Настройка путей
- •Формирование командных строк для вызова ассемблера, компоновщика или отладчика
- •Литература
Задание
Разработать программу, вычисляющую заданное выражение. Просмотреть в отладчике и зафиксировать в отчете ход выполнения вычислений (покомандно). Убедиться в правильности программы.
Посмотреть в отладчике форматы 3-4 команд mov и расшифровать двоичные коды этих команд.
Варианты
1. а = (b2-(c+1)*d)/b |
2. 2. c = a/c - k + (d+1)*5 |
3. b = a*j - j2/(k+2) |
4. а = a*(a+b/4)/(k-1) |
5. d = 3*a*x/[5*(b-5)] |
6. а = a*x-3*(b+3/k) |
7. а = a3/3 -c*(x+3) |
8. d= (k-5)2/4+2*k |
9. d = a*x/2 – (a+b)/2 |
10. a = (b2-2*b)/(3a+b) |
11. b = (a2-b2)/2+a*(k+1) |
12. e = (a-c)2+2*a*c/k |
15. s = q3- 2*a*q+a2/q |
16. n = q2/3 - a*d +5 |
17. m = a*c2- b * a/c+a/b |
18. x = a*y*(b-a)/4 + a2-2 |
19. n = a*x2- b*y/a+x/(y+a) |
20. k = (l-a)2/c+k-l+c/2 |
21. s = (a-b2)/(y-a)+a2 - c |
22. b = (m-5)*(m+2) + m+a/2 |
23. c = (a+b)/d - d2* a - b |
24. a = b*(c-d) - c/(d-1) |
25. q = a2/2 - b3/(4- a + b |
26. s = a*b/2 – k + a/2 -b |
Приложение Наиболее важные настройки среды radAsm
Настройка путей
Для того, чтобы настроить пути автовызова среды используется пункт меню Настройки/Установить пути (см. рисунок 5).
При этом:
$A – путь к каталогу, содержащему Masm32;
$R – путь к каталогу установки RADAsm;
$E – путь к каталогу, содержащему папку отладчика OlleDBG;
$B – путь к каталогу обрабатывающих программ Masm32;
$H – путь к каталогу, содержащему файлы справок;
$I – путь к каталогу подставляемых файлов Masm32 (.inc);
$L – путь к каталогу автовызова двоичных образов стандартных подпрограмм (функций API и т.п.);
$M – путь к каталогу, содержащему файлы макросов;
$P – путь к каталогу, в котором по умолчанию создаются проекты;
$T – путь к каталогу шаблонов новых проектов.
Рисунок 5 – Настройки путей
Если к проекту с помощью INCLUDE подключаются другие файлы, не заданные явно в проекте, то путь к ним указывается полностью.
Формирование командных строк для вызова ассемблера, компоновщика или отладчика
Для формирования командных строк используется специальный формат, который затем в среде распознается и транслируется в команду. Настройки выполняются при создании проекта (на последнем шаге) или при вызове пункта меню Проект/Настройки проекта (см. рисунок 6).
Помеченные команды доступны для вызова:
Compile RC – компилятор ресурсов (окон, кнопок и т.п.).
Assemble – ассемблирование.
Link – компоновка.
Build – сборка.
Go – компиляция ресурсов, ассемблирование, сборка и запуск.
Run – выполнение.
Rub w/Debug – выполнение в отладчике.
Go all – компиляция ресурсов, ассемблирование всех модулей, сборка и запуск.
Assemble modules – ассемблирование модулей, оформленных в отдельных файлах.
Рисунок 6 – Настройки командных строк
Для записи команды используется специальный формат:
<Номер или имя создаваемого или пересоздаваемого файла>,
<Указание окна вывода результата>,
<Имя вызываемой программы с опциями>,
<Номер или имя исходного файла>
В соответствии с принятой автором среды системой все типы файлов, используемых в проекте, имеют номера, например:
0=.rap – файл проекта RADAsm;
1=.rc – файл ресурсов;
2=.asm – исходная программа на ассемблере;
3=.obj – объектный модуль (результат ассемблирования);
4=.res – результат компиляции файла ресурсов;
5=.exe – исполняемый файл;
7=.dll – файл динамически загружаемой библиотеки;
8=.txt – текстовый файл;
9=.lib – файл библиотеки;
10=.mak – командный файл;
11=.hla – файл ассемблера высокого уровня;
12=.com – исполняемый com файл.
Второй параметр – указание окна вывода результатов:
O – сообщения об ошибках выводятся в окно Output RADAsm (если указано OT, то туда же выводится командная строка);
С – сообщения об ошибках выводятся в окно Console.
Далее идет имя обрабатывающей программы с опциями и имя исходного модуля. Более подробно правила записи командных строк приведены в справке среды RADAsm.
