[2009] Большаков С.А. - Методическое пособие по выполнению ЛР по СП (Всякие мелочи), страница 5
Описание файла
Файл "[2009] Большаков С.А. - Методическое пособие по выполнению ЛР по СП" внутри архива находится в папке "Всякие мелочи". PDF-файл из архива "Всякие мелочи", который расположен в категории "". Всё это находится в предмете "системное программирование" из 4 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "остальное", в предмете "системное программирование" в общих файлах.
Просмотр PDF-файла онлайн
Текст 5 страницы из PDF
Кроме того, на рисунке выделены основные виды модулей и файлов, формируемых при такой обработке.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.
Ввод и редактирование текста программы Ассемблера2009 год 2 курс 4-й семестр Большаков С.А.“Системное программирование”18Ввод и редактирования исходного текста программы, очевидно, самая простая операция процесса подготовки программ, однако она является, с другой стороны, достаточнотрудоемкой и, если можно так сказать, “ошибкоемкой” (Исследования, проведенныеочень давно, показывают, что на каждые 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.При компиляции, помимо объектного модуля, компилятор формирует форматированный листинг программы, в котором содержится полная информация о программе, процессе компиляции и возможных ошибках. Листинг программы является очень полезнымдля программиста при отладке программ и для понимания работы компилятора. Кромелистинга при работе компилятора из командной строки на экран дисплея выдается краткаяинформация о результатах компиляции: успешность процесса, ошибки и т.д. В интегриро-2009 год 2 курс 4-й семестр Большаков С.А.“Системное программирование”19ванных оболочках эта информация выдается в отдельном окне.
Процесс компиляции может быть запущен:− Непосредственно из командной строки.− Из командного файла, запускаемого в командной строке.− Неявно, в интегрированной оболочке при нажатии нужной клавиши или выборапункта меню, соответствующего операции компиляции.В общем случае запуск компилятора 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 – выдача на дисплей информации о строке команды, в которой обнаружена ошибка2009 год 2 курс 4-й семестр Большаков С.А.“Системное программирование”20Более подробно режимы компилятора можно получить, вызвав его в режимесправки (>tasm /?) или обратившись к документации по системе программирования. Этипараметры мы рассмотрим ниже.При запуске компилятора в интегрированной оболочке QC25 необходимо выбратьглавный пункт меню “Make” и подпункт “Compile File”. Выход в основное меню выполняется клавишами “Alt+M”, а запуск на компиляцию после этого может быть выполненкомбинацией клавиш “Alt+C”.
На рисунке, размещенном ниже, это показано.В процессе компиляции могут быть обнаружены ошибки (Errors) и предупреждения (Warning). Сообщения о них размещаются: на дисплее, в листинге программы или вспециальном окне системы программирования. Если при запуске компилятора задан параметр “/z”, то будет распечатана та строка, в которой была обнаружена ошибка (см. ниже). В этом примере я сознательно внес ошибку в команду “PUSH CS” => “PASH CS”,Команды “PASH” нет в языке Ассемблера. На экран в командной строке появитьсяследующее сообщение (оператор и диагностические сообщения выделены жирным текстом):C:\BORLANDC\TASM>tasm /z /zi /l first.asm↵Turbo Assembler Version 3.1 Copyright (c) 1988, 1992 Borland InternationalAssembling file:first.asmPASH CS**Error** first.asm(6) Illegal instructionError messages:1Warning messages: NonePasses:1Remaining memory: 414k2009 год 2 курс 4-й семестр Большаков С.А.“Системное программирование”21При работе в среде оболочки QC25 диагностические сообщения появляются вотдельеом окне, а строка исходного текста выделяется цветом (у нас зеленым).При выделении конкретной ошибки, а их при компиляции может быть обнаруженонесколько, выделяется только тот оператор, при ассемблировании которого даннаяошибки была обнаружена (Отмечу, что, к сожалению, эта строка не всегда совпадает сдействительным местом ошибки – вспомните отсутвие “;” в конце оператора на СИ).При компиляции выдаютмя предупреждения, которые требуют вниманияпрограммиста, но не обязательно являются ошибками.