Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2014- СП 3.0 ЛАБЫ ОБЯЗАТ.doc
Скачиваний:
102
Добавлен:
01.03.2016
Размер:
896 Кб
Скачать
      1. Создание текстового файла

Проще всего копированием «с консоли в файл». Выполняем:

  1. Copy con 1.s

  2. Текстовые строки

  3. вводятся последовательно.

  4. В конце каждой строки нажимать Enter.

  5. Конец ввода текста - F6 или Ctrl-Z и Enter.

  6. Dir

  7. Echo Строка1 >> 2.txt

  8. Echo Строка два >> 2.txt

  9. Echo строка №3 >> 2.txt

  10. Dir

  11. Type 1.s

  12. Type 2.txt

Скопировать данный сценарий в отчет. Письменно ответить на следующие вопросы:

  1. Если вы уже выполнили действия б), в) и г), то можно ли вернуться назад и строку «вводятся последовательно.» перередактировать по-новому?

  2. Чем принципиально отличается технология создания файла действиями а)-д) от технологии в действиях ж) – и) ?

      1. Просмотр содержимого файлов

Консольные команды просмотра любой файл трактуют как текстовый.

Работаем с созданными ранее папками d:\SAMPLE1 и d:\SAMPLE2. Выполнить действия:

  1. D:

  2. Cd sample1

  1. Type blankdlg.txt

  2. Type p*.*

  3. type d:\masm32\tview.exe (прослушать звуки)

  4. Cls

  5. copy comment1.txt con

  6. copy comment1.txt+s*.* con

  7. type d:\masm32\tproc.txt | more

  8. Нажать несколько раз Enter, смотреть результат.

  9. Нажимать пробел, наблюдать результат.

  10. more < pop3.txt push3.txt switch.txt

  11. more < d:\masm32\tproc.txt

  12. more /?

Перенести данный сценарий в отчет. Ответить на вопросы:

  1. Сколько способов просмотра одиночного файла вы наблюдали в данном сценарии?

  2. Можно ли одним вызовом просмотреть содержимое сразу нескольких файлов?

  3. Чем объяснить необычные визуальные и звуковые эффекты, которые сопровождают просмотр двоичных (не текстовых) файлов?

  4. Допускает ли команда more последовательный просмотр сразу нескольких файлов, расположенных в разных папках?

      1. Поиск файлов, содержащих нужную строку

Выполнить сценарий:

  1. find "pop edi" pop3.txt

  2. find /n "pop" *.*

  3. find /n "push" d:\masm32\*.ini*

  4. findstr "push edi" *.*

  5. findstr /c:"push edi" *.*

  6. findstr "push pop edi" *.*

  7. findstr /e "push pop edi" *.*

Перенести данный сценарий в отчет. Ответить на вопросы:

  1. Какие особенности выполнения команды find создает применение ключа /n?

  2. Команда findstr, вопрос про ключ /с. Почему результат выполнения действий г) и д) отличаются?

  3. Написать словами, что выполняет действие ж).

  4. Если вам нужно в группе файлов найти или слово1, или слово2, или слово3 в одном вызове, какую команду вы примените – find или findstr? Почему?

  5. В группе ассемблерных исходников нужно найти все строки, которые начинаются со слова “invoke”. Написать соответствующий консольный вызов.

    1. Состав отчета по работе

  1. Фамилия, инициалы и группа студента.

  2. Заголовок работы, цель работы.

  3. Протоколы выполнения всех сценариев раздела «Выполнение работы» и письменные ответы на задаваемые по каждому сценарию вопросы.

  4. Выводы по работе.

    1. Вопросы для самопроверки

  1. Что такое консоль? Как производится работа с ней?

  2. Что такое история ввода команд? Как она используется при работе с консолью?

  3. Какую роль играет клавиша Tab при ручном вводе консольных команд?

  4. Что означают команды @, > и >> в пакетных файлах?

  1. ТЕХНОЛОГИЯ СОЗДАНИЯ АССЕМБЛЕРНЫХ ПРОГРАММ

    1. Цель работы

Освоить технику создания программ в SDK MASM32. Изучить использование шаблонов ассемблерных программ. Экспериментально изучить работу макрогенератора.

    1. Теоретические сведения

      1. На что опирается программирование на ассемблере

Программировать на ассемблере – значит писать программы практически на уровне машинных команд. Ассемблеры – это такие языки программирования, в которых каждой машинной команде процессора сопоставляется один оператор. (Примечание. В ассемблеры также включаются всякие дополнительные средства для облегчения программирования, но главная их особенность именно эта – одна процессорная команда может изображаться одним оператором). Для превращения исходного текста в исполняемый exe-модуль применяются компилятор (переводчик текста в машинный код) и компоновщик (он связывает вместе отдельные функциональные секции машинного кода и создает ехе-модуль). Язык ассемблерного программирования, включающий возможность описания и использования макроподстановок (макросов), традиционно называют «макроассемблер». Среди макроассемблеров самым проработанным и удобным заслуженно считается Microsoft Macroassembler, сокращенно – MASM (МАСМ). Его 32-разрядная разновидность называется MASM32.

Корпорация Microsoft включает в пакеты Visual C++ и Visual Studio компилятор макроассемблера ML.EXE и компоновщик LINK.EXE, которые являются необходимыми компонентами среды разработки программных приложений (IDE). Эти качественные программные компоненты можно использовать и сами по себе (чем мы и будем заниматься в этом курсе), вне упомянутых сред программирования. Корпорация Microsoft не рассматривает их как отдельные товарные продукты на рынке программного обеспечения и не препятствует их свободному бесплатному использованию кем угодно.

Многие энтузиасты создают собственные пакеты для программирования на макроассемблере, базирующиеся на использовании ML.EXE и LINK.EXE. Наиболее успешной следует считать деятельность группы Стива Хатчисона (Австралия), которые бесплатно распространяют и поддерживают пакет МАСМ, доступный в Сети по адресу http://www.МАСМ.com/masmdl.htmдля скачивания как минимум с семи зеркальных серверов.

Пакет МАСМ содержит множество ресурсов, которые дополняют ML.EXE и LINK.EXE до работоспособного набора поддержки разработчиков ассемблерных программ (Software Developer’s Kit, SDK). Более подробно о составе МАСМ и назначении его компонент речь пойдет ниже.

И, наконец, существует множество фирм, инициативных групп и отдельных программистов, которые создают и даже нередко сопровождают всякие дополнительные программные средства для программирования на всевозможных ассемблерах – и МАСМ, и nasm и fasm и всяких иных. В конце концов, фирма Intel открыто публикует сведения об архитектуре и системе команд своих процессоров, и на этой базе даже одному человеку под силу написать «свой ассемблер», примеров чему мы находим в Интернете множество.

Говоря здесь о «дополнительных программных средствах», мы имеем в виду (по версии сайта http://www.wasm.ru/) такой (неполный) список классов программ:

  • образовательные программы;

  • SDK и IDE;

  • редакторы ресурсов;

  • дизассемблеры;

  • отладчики;

  • модификаторы;

  • инсталляторы;

  • распаковщики;

  • упаковщики;

  • средства криптографии;

  • средства работы с реестром;

  • редакторы байт-кода…

Столь обширный перечень одних только классов программ говорит о том, что при разработке системных программ на ассемблере программисты встречаются с огромным множеством особых, нестандартных, специфических ситуаций, для преодоления которых и создаются эти инструменты. С некоторыми из них мы познакомимся в курсе лабораторных работ по СП.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]