Главная · Поиск книг · Поступления книг · Top 40 · Форумы · Ссылки · Читатели

Настройка текста
Перенос строк


    Прохождения игр    
Demon's Souls |#10| Мaneater (part 1)
Demon's Souls |#9| Heart of surprises
Demon's Souls |#8| Maiden Astraea
Demon's Souls |#7| Dirty Colossus

Другие игры...


liveinternet.ru: показано число просмотров за 24 часа, посетителей за 24 часа и за сегодня
Rambler's Top100
Образование - Различные авторы Весь текст 2311.07 Kb

Программирование и кодирование

Предыдущая страница Следующая страница
1 ... 178 179 180 181 182 183 184  185 186 187 188 189 190 191 ... 198



                        Приложение А.   СРЕДСТВА РАЗРАБОТКИ

              Использование командных файлов для автоматизации процес-
              са трансляции с языка Ассемблера
              Использование средства MAKE фирмы "Майкрософт"
              Использование шаблонов  для  создания программ с
              расширением ".COM" и ".EXE"
              Использование библиотечных стандартных программ



              В данном приложении описаны некоторые средства,  которые мо-
         гут упростить и повысить эффективность  использования  языка  Ас-
         семблера для разработки прикладных программ. Ниже приводится опи-
         сание:   автоматизации   процесса    разработки    программы    с
         использованием командных файлов; использование средства MAKE фир-
         мы "Майкрософт"; создание .EXE - и .COM-программ с помощью шабло-
         нов,  а также использование файлов "include" ("файлов включения")
         и библиотечных стандартных программ.

             Использование командных файлов для автоматизации процесса
                           трансляции с языка Ассемблера

              Процессор обработки команд MS-DOS - это часто одно из наиме-
         нее  ценимых  по достоинству средств данной операционной системы.
         Это средство,  однако, может оказаться очень полезным при исполь-
         зовании  Вами  макроассемблера MASM.  В листингах A-1,  A-2 и A-3
         приводятся  исходные  тексты  программ  трех  командных   файлов:
         MASM2EXE.BAT, MASM2COM.BAT и MК.BAT.
              Командный файл MASM2EXE.BAT используется  для  автоматизации
         процесса  трансляции  с  языка ассемблера и редактирования связей
         .EXE - программ.
              Командный файл  MASM2COM.BAT  является  модификацией первого
         файла и включает процесс  преобразования  .EXE-  файлов  в
         .COM-файлы.
              Оба командных файла предназначены для работы с  макроассемб-
         лером  MASM  фирмы "Майкрософт" версий с 1.00 по 4.00 и большинс-
         твом версий редактора связей LINK.
              Значительно более  мощный  командный  файл разработки MК.BAT
         (листинг A-3) предназначен для  работы  с  макроассемблером  MASM
         версии  5.0  и  выше и редактором связей LINK версии 3.00 и выше.
         Командный файл MК.BAT может  использоваться  для  создания  .EXE,
         -.COM - или .ОВJ (объектных программ,  пригодных для редактирова-
         ния связей) - файлов с помощью заданных параметров строки команд.

             Использование командных файлов для макроассемблера  MASM
                                версий с 1.00 по 5

              Командные файлы MASM2EXE.BAT и  MASM2COM.BAT,  показанные  в
         листингах A-1 и A-2,  пригодны для использования с макроассембле-
         ром MASM версий с 1.00 по 4.00 и редактором связей LINK  версий с

                                      - П-2 -
         1.00 по 2.00.
              Модификации командных файлов для более поздних версий макро-
         ассемблера  MASM и редактора связей LINK приводятся в примечаниях
         к листингам.  Оба командных файла требуют наличия второго  файла,
         называемого AUTOLINK.  Этот файл содержит четыре команды возврата
         каретки и перевода строки и используются  для  решения  проблемы,
         касающейся редактора связей LINK (вплоть до версии 2.00): послед-
         ний не может воспринимать  пустые  (неопределенные)  параметры  в
         строке команды для опций распечатки (.МАР) и библиотек (.LIB).
              Инициирование файла AUTOLINK для редактора связей LINK  осу-
         ществляется путем добавления имени файла в строке команды с пред-
         шествующим ему знаком @.  Знак "@" используется для совместимости
         версий  2.00  операционной системы MS-DOS с предыдущими версиями,
         поскольку более  ранние  версии  не  поддерживают  переназначение
         строки команд.
              Использовать конкретный командный файл очень  просто. Просто
         введите  имя данного командного файла с последующим именем файла,
         подлежащего трансляции.  Не включайте расширение,  в то время как
         расширение .ASM допускается.  Если вы используете версию 2.00 или
         выше операционной системы MS-DOS,  и путь доступа PATH установлен
         корректно, то драйверы, на которых хранятся связанные с ними фай-
         лы, не должны указываться.

                             Листинг A-1. MASM2EXE.BAT
         ----------------------------------------------------------------
              echo  off
              if not exist %1.asm goto NOFILLER
              rem
              masm %1 %1 nul nul
              rem
              rem Используйте вышеприведенные строки только с версиями
              rem MASM ниже 2.00
              rem Используйте "masm %1.asm,,;" для макроассемблера MASM
              rem версии 2.00 и выше
              rem
              link %1 @a:autolink
              rem
              rem  Используйте вышеприведенные строки только с версиями
              rem  редактора связей LINK ниже 2.20;
              rem  Используйте "link %1.obj,,nul;" для редактора связей
              rem  LINK версии 2.20 и выше
              rem
              echo Удаление %1.obj
              del %1.obj >nul:
              echo Выполнено!
              dir %1.*
              goto END
              rem
              :NOFILERR
              echo Файл %1.asm не был найден.
              :END
         ----------------------------------------------------------------



                                      - П-3 -
                             Листинг A-2. MASM2COM.BAT
         ----------------------------------------------------------------
              echo off
              if not exist %1.asm goto NOFILERR
              rem
              masm %1 %1 nul nul
              rem
              rem Используйте вышеприведенные строки только с версиями
              rem MASM ниже 2.00
              rem Используйте "masm %1.asm,,;" для макроассемблера MASM
              rem версии 2.00 и выше
              rem
              link %1 @a:autolink
              rem
              rem  Используйте вышеприведенные строки только с версиями
              rem  редактора связей LINK ниже 2.20;
              rem  Используйте "link %1.obj,,nul;" для редактора связей
              rem  LINK версии 2.20 и выше
              rem
              echo Удаление %1.obj
              del %1.obj >nul:
              echo Создание %1.com из %1.exe (и удаление %1.exe)
              exe2bin %1.exe %1.com >nul:
              del %1.exe >nul:
              echo Выполнено!
              dir %1.*
              goto End
              rem
              :NOFILERR
              echo Файл %1.asm не был найден.
              :END
         ----------------------------------------------------------------

              Отметим, что некоторые строки в листинге A-1 и A-2  заканчи-
         ваются параметрами переназначения вывода. Если вы используете бо-
         лее раннюю  версию  по  сравнению  с  2.00  операционной  системы
         MS-DOS, то эти параметры должны быть удалены.

             Использование  командных файлов для макроассемблера MASM
                                  версий 5 и выше

              Если вы  используете макроассемблер MASM версии 5 и редактор
         связей LINK версии 3 или выше,  можно использовать командный файл
         МК.BAT,  показанный  в листинге A-3.  Командный файл МК.BAT может
         быть использован для создания или .EXE,  -.COM, - или .OBJ - фай-
         лов путем указания корректного параметра в строке команды.
              К примеру, если вы хотите оттранслировать с языка ассемблера
         файл,  называемый TEST1.ASM.  для создания файла TEST1.EXE просто
         введите "МК TEST1.EXE".  Наоборот,  если  целевым  является  файл
         TEST1.COM,  введите  "MK  TEST1.COM" или введите "МК ТEST1.OBJ" с
         целью создания .ОВJ файлов объектных программ,  пригодных для ре-
         дактирования связей.
              Командный файл MK.BAT, кроме того, использует коды возврата,
         генерируемые макроассемблером MASM и редактором связей LINK . Ес-
         ли код возврата, отличный от "0", возвращается или макроассембле-
         ром  MASM  или  редактором связей LINK,  то командный файл МК.BAT
         приостанавливает обработку и выдает сообщение об ошибке.

                                      - П-4 -
              Обнаружение ошибки в командном файле МК.BAT полезно,  к при-
         меру, в случае обнаружения ошибки макроассемблером MASM в процес-
         се  трансляции  с  языка ассемблера,  в результате чего командный
         файл МК.BAT лишается продолжения процесса  редактирования  связей
         до тех пор,  пока не будет зафиксирована ошибка в исходном файле.
                                Листинг A-3. MK.BAT
         ----------------------------------------------------------------
      @ECHO off
      REM Используйте вышеприведенную строку для предотвращения вывода
      REM на экран строки "ECHO off", но только в случае работы  с
      REM версией 3.3 и выше операционной системы DOS. В других случаях
      REM используйте  следующие две строки с загруженным ANSI.SYS
      REM ("^[" = Символ EScape (переход) в коде ASCII*).
      REM Выключить режим вывода на экран исполняемых команд
      REM (ECHO off)
      REM ECHO ^[[s^[[1A^[[K^[[u
      REM
         IF (%1)==() goto : NOPARM
         IF not exist %1.asm goto :NOFILE
         SET F1=%1
         IF (%2)==() : ASKTYPE
         SET TYPE=%2
         IF (%3)==() goto :CHKTYPE
         SET MASMS=
         SET LINKS=
         IF (%3)==(m) SET MASMS=%4
         IF (%3)==(M) SET MASMS=%4
         IF (%3)==(mo) SET MASM=%4
         IF (%3)==(mO) SET MASM=%4
         IF (%3)==(Mo) SET MASM=%4
         IF (%3)==(MO) SET MASM=%4
       rem
         IF (%3)==(l)  SET LINKS=%4
         IF (%3)==(L)  SET LINKS=%4
         IF (%3)==(lo)  SET LINK=%4
         IF (%3)==(lO)  SET LINK=%4
         IF (%3)==(Lo)  SET LINK=%4
         IF (%3)==(LO)  SET LINK=%4
       rem
         IF (%5)==(m) SET MASMS=%6
         IF (%5)==(M) SET MASMS=%6
         IF (%5)==(mo) SET MASM=%6
         IF (%5)==(mO) SET MASM=%6
         IF (%5)==(Mo) SET MASM=%6
         IF (%5)==(MO) SET MASM=%6
       rem
         IF (%5)==(l) SET LINKS=%6
         IF (%5)==(L) SET LINKS=%6
         IF (%5)==(lo) SET LINK=%6
         IF (%3)==(lO) SET LINK=%6
         IF (%3)==(Lo) SET LINK=%6
         IF (%3)==(LO) SET LINK=%6
       rem
         GOTO :CHKTYPE
       :ASKTYPE
         ECHO ^H
         ANSWER Наберите имя файла,  подлежащего созданию: OBJ, COM

                                      - П-5 -
                или EXE и нажмите клавишу ENTER
        ECHO ^H
      :CHKTYPE
        IF (%TYPE%)==(o)   SET TYPE=OBJ
        IF (%TYPE%)==(O)   SET TYPE=OBJ
        IF (%TYPE%)==(ob)  SET TYPE=OBJ
        IF (%TYPE%)==(Ob)  SET TYPE=OBJ
        IF (%TYPE%)==(oB)  SET TYPE=OBJ
        IF (%TYPE%)==(OB)  SET TYPE=OBJ
        IF (%TYPE%)==(obj)  SET TYPE=OBJ
        IF (%TYPE%)==(Obj)  SET TYPE=OBJ
        IF (%TYPE%)==(oBj)  SET TYPE=OBJ
        IF (%TYPE%)==(obJ)  SET TYPE=OBJ
        IF (%TYPE%)==(OBj)  SET TYPE=OBJ
        IF (%TYPE%)==(oBJ)  SET TYPE=OBJ
        IF (%TYPE%)==(OBJ)  goto :DOASM
      rem
        IF (%TYPE%)==(e)   SET TYPE=EXE
        IF (%TYPE%)==(E)   SET TYPE=EXE
        IF (%TYPE%)==(ex)  SET TYPE=EXE
        IF (%TYPE%)==(Ex)  SET TYPE=EXE
        IF (%TYPE%)==(eX)  SET TYPE=EXE
        IF (%TYPE%)==(EX)  SET TYPE=EXE
        IF (%TYPE%)==(exe) SET TYPE=EXE
        IF (%TYPE%)==(Exe) SET TYPE=EXE
        IF (%TYPE%)==(eXe) SET TYPE=EXE
        IF (%TYPE%)==(exE) SET TYPE=EXE
Предыдущая страница Следующая страница
1 ... 178 179 180 181 182 183 184  185 186 187 188 189 190 191 ... 198
Ваша оценка:
Комментарий:
  Подпись:
(Чтобы комментарии всегда подписывались Вашим именем, можете зарегистрироваться в Клубе читателей)
  Сайт:
 

Реклама