Методическое пособие для выполнения лабораторных работ и КР (1075934), страница 5
Текст из файла (страница 5)
Исполнение программы Ассемблера и его результатыПосле выполнения всех шагов полученная программа может быть выполнена в режиме командной строки. Для этого нужно ее запустить:C:\BORLANDC\TASM>first.exe↵A2.5. Запоминание результатов в отдельном файлеЕсли программа выводить информацию на экран и работает в пакетном режиме(т.е.
выполняется и сама завершается, как в нашем примере), то можно перенаправить вывод на дисплей в текстовый файл и затем его просмотреть или распечатать. В нашем примере это может быть сделано так:C:\BORLANDC\TASM>first >> first.txt↵2010 год 2 курс 4-й семестр Большаков С.А.“Системное программирование”15Сформированный файл “first.txt” содержит одну строку, в начальной позиции которой будет напечатана буква “А”.2.6. Отладка программ, начальные сведенияДля отладки программ в системе программирования TASM используется утилитаTD.EXE.
Для ее полнофункциональной работы на этапах компиляции и редактированиясвязей мы установили специальные режимы (см. выше):− TASM.EXE – режим “/zi” – включение отладочной информации в объектный модуль.− TLINK.EXE – режим “/v” - включение отладочной информации в исполнимыймодуль.В этом случае мы можем запустить TD и иметь в отдельном окне исходный текстнашей программы. Запуск TD выполняется так:C:\BORLANDC\TASM>TD.EXE first.exe↵После запуска в окне командной строки появиться окно отладчика. Нажимая клавишу F7, мы можем по отдельным командам (по шагам) выполнить нашу программу. Результат работы программы мы можем увидеть, нажав комбинацию Alt+F5. Более подробно об отладке и отладчике мы будем говорить ниже. Для завершения отладчика нужнонажать “Alt + x”.Практика.1. Выполните все действия, связанные с созданием простой программы, изложенныев данном разделе.2.
Познакомьтесь с отладчиком.3. Сделайте простые изменения в программе, создайте и отладьте ее заново.2010 год 2 курс 4-й семестр Большаков С.А.“Системное программирование”163. Ввод текста, компиляция, редактирование и отладкаВ предыдущем разделе мы кратко на простейшем рассмотрели технологическиевопросы, связанные с подготовкой и созданием Программ на Ассемблере. В этом разделемы более детально обратимся к основным понятиям и особенностям такой работы.Процессы преобразования программ можно упрощенно представить следующимрисунком.
На этом рисунке представлены основные компоненты систем программирования, которые участвуют в обработке программ. Кроме того, на рисунке выделены основные виды модулей и файлов, формируемых при такой обработке.tlink.exeЛистинг (*.lst)Карта (*.map)link.exeFIRST.OBJFIRST.ASMИсходныймодуль наязыкеАссемблер(*.ASM)КомпиляторАссемблераОбъектныймодуль(*.OBJ)qlink.exeРедакторсвязейFIRST.EXEИмполняемыймодуль(*.EXEИли*.COM)Tasm.exeMasm.exeqcl.exeБиблиотекарьСПtlib.exeБиблиотеки OBJ(*.LIB)lib.exeДанная технология формирования программ характерна практически для всех систем программирования, используемых в настоящее время. В тех случаях, когда мы работаем в интегрированной оболочке СП, мы можем не увидеть в явном виде промежуточныхкомпонент, участвующих в такой обработке, однако они всегда присутствуют.
Эти компоненты отмечены на рисунке двойным подчеркиванием.Для лабораторных работ рекомендуются три разновидности систем программирования (они все есть на сайте):− Turbo Assembler (TASM) разных версий. Он включает: tasm.exe, tlink.exe, tlib.exe,td.exe и много других вспомогательных программ.− Microsoft Assembler (MASM) разных версий. Он включает: masm.exe, link.exe,lib.exe, cv.exe и много других вспомогательных программ.− Quick C and Quick Assembler (QC25) - Он включает: qcl.exe, qlink.exe, lib.exe и много других вспомогательных программ. QC является интегрированной оболочкой,позволяющей выполнять все операции создания программ без переключения в командную строку. В QC встроен также текстовый редактор для подготовки исходных текстов программ.Рассмотрим основные элементы подготовки программ на языке Ассемблер, учитывая особенности приведенных систем программирования.3.1.
Ввод и редактирование текста программы Ассемблера2010 год 2 курс 4-й семестр Большаков С.А.“Системное программирование”17Ввод и редактирования исходного текста программы, очевидно, самая простая операция процесса подготовки программ, однако она является, с другой стороны, достаточнотрудоемкой и, если можно так сказать, “ошибкоемкой” (Исследования, проведенныеочень давно, показывают, что на каждые 100 вводимых символов, даже самый опытныйоператор, делает в среднем одну ошибку!). Поэтому выбор и освоение удобного текстового редактора серьезная задача.
Текстовый редактор для Ассемблера должен обладать следующими свойствами:− Обеспечивать ввод в кодировках однобайтовыми символами (не UNICODE).− Не включать в текст специальные служебные символы (возможно скрытые) дляформатирования текста (исключая символ табуляции и конца строки).− Обеспечивать ввод данных в кодировке ASCII (кодировка ДОС – для отладки программ) и кодировке ANSI (кодировка WINDOWS – для подготовки отчетов по ЛР иКР). Данный пункт относится к русским символам, так как они по разному кодируются в этих кодах.− Обеспечивать перевод из одной кодировки в другую (ASCII=>ANSI и ANSI=>ASCII).− Обеспечивать русификацию клавиатуры и шрифтов дисплея.− Просто развертываться и занимать немного места на диске.− Быть надежным в эксплуатации и легко осваиваться пользователями.Учитывая сказанное, можно предложить следующие варианты текстовых редакторов для выполнения ЛР:− Любой текстовый редактор, удовлетворяющий приведенными выше требованиями.− Текстовый редактор ASM Editor for Windows (есть на сайте).− На сайте есть специальная программка перекодировки DOS<=>Windows (trans.exe).− Редактор NOTEPAD совместно с trans.exe.− Редактор в оболочке QC25 с trans.exe.− Редакторы в файловых менеджерах (см.
ниже) – DN и FAR совместно с trans.exe ирусификатором.Для редактирования текста в полноэкранном режиме и в режиме эмулятора ДОСнеобходим русификатор шрифта дисплея и клавиатуры. Его необходимо запустить до запуска текстового редактора. Я рекомендую русификатор RKM (есть на сайте). Переключение раскладки клавиатуры по – умолчанию в нем выполняется клавишей – “правыйShift”.3.2.
Запуск на компиляцию программы АссемблераКомпиляция – это процесс преобразования исходного модуля на языке программирования в объектный модуль (см. рисунок, расположенный выше). Компиляция программможет выполняться специальной отдельной программой - компилятором или программой,встроенной в интегрированную оболочку (Environment) системы программирования. Прииспользовании интегрированных оболочек компиляторы вызываются и настраиваются неявно. В качестве отдельных компиляторов для языка Ассемблер мы выделим: TASM.EXE,MASM.EXE и QCL.EXE. Интегрированными оболочками систем программирования являются: QC25, MASM 6.1, VS , BCCP и многие другие. В данном курсе рекомендуется использование: TASM.EXE, MASM.EXE и QC25.При компиляции, помимо объектного модуля, компилятор формирует форматированный листинг программы, в котором содержится полная информация о программе, процессе компиляции и возможных ошибках.
Листинг программы является очень полезнымдля программиста при отладке программ и для понимания работы компилятора. Кромелистинга при работе компилятора из командной строки на экран дисплея выдается краткаяинформация о результатах компиляции: успешность процесса, ошибки и т.д. В интегриро-2010 год 2 курс 4-й семестр Большаков С.А.“Системное программирование”18ванных оболочках эта информация выдается в отдельном окне. Процесс компиляции может быть запущен:− Непосредственно из командной строки.− Из командного файла, запускаемого в командной строке.− Неявно, в интегрированной оболочке при нажатии нужной клавиши или выборапункта меню, соответствующего операции компиляции.В общем случае запуск компилятора TASM имеет следующий синтаксис:>TASM[.EXE] [<множество режимов>] <исходный модуль> [, <объектный модуль>] [, <файл листинга>] [,<файл XREF>]Где:− TASM[.EXE] - имя исполнимого файла компилятора, он должен быть доступен попутям при запуске или вызове из командного файла.− <множество режимов> - множество режимов - параметров работы компилятора,разделенных пробелами.
Каждый режим начинается служебным символом ‘/’ иимеет символьное значение.− <исходный модуль> - имя исходного модуля (текстового файла) для компиляции.Если расширение у имени файла отсутствует, то оно воспринимается как ‘.asm’.Это единственный обязательный параметр для запуска компилятора.− <объектный модуль> - имя объектного модуля, формируемого компилятором. Если это имя отсутствует при запуске компилятора, то оно формируется автоматически на основе имени исходного модуля с заменой расширения на ‘.obj’.− <файл листинга> - имя файла листинга Ассемблера.
Если это имя отсутствует призапуске компилятора, то оно формируется автоматически на основе имени исходного модуля с заменой расширения на ‘.lst’.− <файл XREF> - файл имен программы и их адресов. Если это имя отсутствует изадан режим компиляции “/c”, то эта информация поступает в файл листинга.
Расширение, задаваемое по-умолчанию, - ‘.xrf’.Пример запуска TASM из командной строки выполняется так (на примере TASM):C:\BORLANDC\TASM>tasm.exe /l /zi /c first.asm↵Здесь в строке запуска компилятора введены: имя исполнимого модуля компилятора (tasm.exe), настройки-режимы компиляции (/l /zi /c) и имя модуля подлежащего компиляции (в нашем случае - first.asm).При успешной компиляции на экран дисплея мы получим:Turbo AssemblertionalAssembling file:Error messages:Warning messages:Passes:Remaining memory:Version 3.1Copyright (c) 1988, 1992 Borland Interna-first.asmNoneNone1414kВ первой строке выводится название и версия компилятора (TASM v.
3.1). Далеепредставлено имя компилируемого модуля - first.asm, число ошибок и предупреждений (унас нет ошибок - None), количество фаз-проходов компилятора (важно при использованиимакрокоманд) и размер оперативной памяти, необходимый при размещении объектногомодуля в оперативной памяти (Remaining memory: 414k). Параметры режимы для нашего случая имеют следующее назначение:/l - формирование компилятором нормального листинга программы/zi – включение в объектный модуль информации, необходимой для работы отладчика/c - включение в листинг таблицы соответствия XREF (перекрестных ссылок) типа команда – адресОП/z – выдача на дисплей информации о строке команды, в которой обнаружена ошибка2010 год 2 курс 4-й семестр Большаков С.А.“Системное программирование”19Более подробно режимы компилятора можно получить, вызвав его в режимесправки (>tasm /?) или обратившись к документации по системе программирования.