Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Анализ расширенного листинга программы




а) Создайте исходный файл coff1.asm такого содержания:

 

include \masm32\include\masm32rt.inc

; ИЗУЧЕНИЕ РАСШИРЕННОГО ЛИСТИНГА

;< 1. Здесь можно описывать макросы.>

macrodef MACRO par1, par2, par3

LOCAL M3

mov par2, par1; обычная команда

;с обычным комментарием

;; Скрытый комментарий

M3:

push par3;; обычные

pop par2;; команды

endm

.data

;<2. Здесь можно описывать статические переменные. >

Num1 dd 11223344h, 55667788h

Str1 db "ABCDEF", 0

.code

start:

;<3. Здесь можно вводить команды программиста. >

Mov EAX, Num1; 11223344

Mov dl, [Str2 + 3]; J

macrodef EAX, EDX, Num1

.data

;<4. Здесь можно описывать статические переменные. >

Num2 dd 99aabbcch, 0ddeeff00h

Str2 db "GHIJKLM",0

.code

;<5. Здесь можно вводить команды программиста. >

Mov EBX,[Num2 + 4]; DDEEFF00

Mov dl, [Str1 +4]; E

macrodef Num2, ESI, EAX

; 6. примеры реальных вызовов макросов и процедур

print "Hello, world!"; макрос сообщения

;--------------------------------------

invoke ExitProcess,0; выход в Windows

end start

 

б) Создайте пакетный файл LstExt.bat такого содержания:

 

@echo off

echo РАСШИРЕННЫЙ ЛИСТИНГ файла %1

ECHO.

ml /c /coff /Fl%1.ELST /Sa %1

PAUSE

 

в) Выполните LstExt coff1.asm. Результаты - это объектный файл coff1.obj и файл расширенного листинга coff1.asm.ELST который в данный момент нас интересует больше всего. Объектный файл нам тоже понадобится, но в следующей лабораторной работе.

г) Откройте coff1.asm.ELST в Notepad++ (кодировка Кириллица ОЕМ 866). Не удивляйтесь тому, что объем этого текстового файла около полумегабайта, и что он включает «всего-то» 101 тысячу с лишним строчек. Это – следствие подключения всех inc-файлов, скрыто упомянутых в первой строчке coff1.asm, и разворачивания всех попутно попадающихся там макровызовов. Разумеется, нам всё это в данной работе совершенно не нужно, поэтому надо удалить из coff1.asm.ELST всё лишнее. Открываем поиск Ctrl-F, вводим «ИЗУЧЕНИЕ», «Искать далее», и устанавливаем курсор перед строчкой «; ИЗУЧЕНИЕ ЛИСТИНГОВ». Shift-Ctrl-Home выделит всё до этого места. Del. Верхний мусор удалён.

д) Пролистать листинг вниз, установить курсор в конце строки «end start». Shift-Ctrl-End выделит всё от этого места до конца документа. Del. Нижний мусор также удалён. Сохранить «обрезанный» листинг.

е) Скопировать в отчет coff1.asm и укороченный coff1.asm.ELST.

ж) Провести сопоставление (ради этого, в общем, всё описываемое здесь и затевалось). Вручную обвести ручкой в исходнике рамочками строчки макровызовов со словами «macrodef», «print» и «invoke». Каждую рамочку снабдить числовой выноской.
Такую же работу выполнить в coff1.asm.ELST. То есть снабдить пронумерованными рамочками результаты макрорасширения всех макровызовов.

з) Сравнить визуально «что писалось в исходнике» с тем, «что поместил в листинг макрогенератор». Письменно прокомментировать и объяснить в отчете наблюдаемое. Особое внимание уделить тому, как передавались параметры макровызовов в макрорасширение и как обрабатываются локальные метки макроопределений при повторных макрорасширениях одного и того же макроопределения.

 

4. Содержание отчёта

  1. Название, цель работы
  2. Протокол выполнения работы с текстами ответов на все вопросы в заданиях пункта «Выполнение работы».
  3. Выводы по работе.
  4. Ответы на контрольные вопросы.

 

Вопросы к защите

1. Какова функция программы ML.EXE?

2. Какова функция программы LINK.EXE?

3. В чем разница в подготовке консольных приложений и оконных?

4. Что конкретно делает компоновщик во время компоновки ехе-модуля?

5. Чем отличаются интегрированная среда разработки и набор разработчика программ? К какому классу программных продуктов относится MASM32?

6. Какие особенности имеет инсталляция MASM32 на компьютер?

7. Какую роль выполняет в операционной системе переменная path?

8. Какими преимуществами обладает свободный текстовый редактор Notepad++?

9. Как задать обработчик для файлов исходных текстов на ассемблере?

10. Что такое макроопределение?

11. Как выполняется расширение макроопределения с параметрами?

12. Как обеспечивается уникальность меток в исходном тексте при многократных вставках одного и того же макроса с метками?

13. Как получить расширенный листинг компиляции ассемблерного модуля?

14. Как происходит расширение макровызова invoke?

 

 

Приложение

 





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


Дата добавления: 2016-11-02; Мы поможем в написании ваших работ!; просмотров: 603 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Начинать всегда стоит с того, что сеет сомнения. © Борис Стругацкий
==> читать все изречения...

2349 - | 2105 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.011 с.