Иванова Г.С., Ничушкина Т.Н. - Программирование на ассемблере MASM32 в среде RADAsm с использованием 32-разрядного отладчика OlleDBG (1075573), страница 4
Текст из файла (страница 4)
Разработать программу, вычисляющую заданное выражение. Просмотреть в отладчике и зафиксировать в отчете ход выполнения вычислений (покомандно). Убедитьсяв правильности программы.2.Посмотреть в отладчике форматы 3-4 команд mov и расшифровать двоичныекоды этих команд.Варианты1.3.5.7.9.11.13.15.17.19.21.23.25.а = (b2-(c+1)*d)/bb = a*j - j2/(k+2)d = 3*a*x/[5*(b-5)]а = a3/3 -c*(x+3)d = a*x/2 – (a+b)/2b = (a2-b2)/2+a*(k+1)р = (t3 – 1)/(j - 4) - 5s = q3- 2*a*q+a2/qm = a*c2- b * a/c+a/bn = a*x2- b*y/a+x/(y+a)s = (a-b2)/(y-a)+a2 - cc = (a+b)/d - d2* a - bq = a2/2 - b3/(4- a + b2.2.
c = a/c - k + (d+1)*54. а = a*(a+b/4)/(k-1)6. а = a*x-3*(b+3/k)8. d= (k-5)2/4+2*k10. a = (b2-2*b)/(3a+b)12. e = (a-c)2+2*a*c/k14. a = b2*(y+d) + (d-1)/c16. n = q2/3 - a*d +518. x = a*y*(b-a)/4 + a2-220. k = (l-a)2/c+k-l+c/222. b = (m-5)*(m+2) + m+a/224. a = b*(c-d) - c/(d-1)26. s = a*b/2 – k + a/2 -bОглавление32Контрольные вопросы1.Определите структуру машинной команды ассемблера. Чем обусловлен сложныйформат машинных команд?Ответ2.
Какие типы данных обрабатывает современный процессор фирмы Intel?Ответ3. Как определяется размер операнда машинной команды?Ответ4. С какими форматами данных может работать команда пересылки mov?Ответ5.Какие варианты пересылки данных позволяет выполнить команда mov?Ответ6.Как работают команды сложения? Запишите команду, которая добавляет к содержимому регистра EAX число 3.Ответ7. Что означает единственный операнд команды умножения? Где будет хранитьсярезультат операции?Ответ8.Где должно храниться делимое перед операцией деления? Где будет находитьсярезультат операции?Ответ9. Зачем перед командой деления используют команду развертывания?Ответ10.
Что такое «модель памяти Flat», и для чего она используется?ОтветОглавление33Литература1.Иванова Г.С. Слайды лекций по курсу Системное программное обеспечение. –М.: МГТУ им. Н.Э. Баумана, 2008.2.ИрвинК. Язык ассемблера для процессоров Intel. – М.: Изд. дом «Вильямс», 2005.Оглавление34Приложение. Наиболее важные настройки среды RADAsm1. Настройка путейДля того, чтобы настроить пути автовызова среды используется пункт меню Настройки/Установить пути (см. рисунок П1).При этом:$A – путь к каталогу, содержащему Masm32;$R – путь к каталогу установки RADAsm;$E – путь к каталогу, содержащему папку отладчика OlleDBG;$B – путь к каталогу обрабатывающих программ Masm32;$H – путь к каталогу, содержащему файлы справок;$I – путь к каталогу подставляемых файлов Masm32 (.inc);$L – путь к каталогу автовызова двоичных образов стандартных подпрограмм(функций API и т.п.);$M – путь к каталогу, содержащему файлы макросов;$P – путь к каталогу, в котором по умолчанию создаются проекты;$T – путь к каталогу шаблонов новых проектов.Рисунок П1 – Настройки путейОглавление35Если к проекту с помощью INCLUDE подключаются другие файлы, не заданныеявно в проекте, то путь к ним указывается полностью.2.
Формирование командных строк для вызова ассемблера, компоновщика илиотладчикаДля формирования командных строк используется специальный формат, которыйзатем в среде распознается и транслируется в команду. Настройки выполняются при создании проекта (на последнем шаге) или при вызове пункта меню Проект/Настройкипроекта (см.
рисунок 6).Помеченные команды доступны для вызова:Compile RC – компилятор ресурсов (окон, кнопок и т.п.).Assemble – ассемблирование.Link – компоновка.Build – сборка.Go – компиляция ресурсов, ассемблирование, сборка и запуск.Run – выполнение.Rub w/Debug – выполнение в отладчике.Go all – компиляция ресурсов, ассемблирование всех модулей, сборка и запуск.Assemble modules – ассемблирование модулей, оформленных в отдельных файлах.Рисунок 6 – Настройки командных строкОглавление36Для записи команды используется специальный формат:<Номер или имя создаваемого или пересоздаваемого файла>,<Указание окна вывода результата>,<Имя вызываемой программы с опциями>,<Номер или имя исходного файла>В соответствии с принятой автором среды системой все типы файлов, используемых в проекте, имеют номера, например: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.Оглавление.