Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Последние темы форума

Показать новые сообщения »

Почтовая рассылка

Подписчиков: 11642
Последний выпуск: 19.06.2015

СПРАВОЧНИК по системе программирования ТУРБО АССЕМБЛЕР 2.0


Оглавление

               Ваша первая программа на Турбо Ассемблере
-----------------------------------------------------------------

     В программировании первой  программой  традиционно  является
программа,  выводящая на экран сообщение "Привет!". Не будет иск-
лючением и наша программа, поскольку это является хорошей отправ-
ной точкой. Войдите в текстовый редактор (один из тех редакторов,
которые формируют файлы в коде ASCII) и введите следующие  строки
программы под названием HELLO.ASM:

   DOSSEG
   .MODEL SMALL
   .STACK 100h
   .DATA
Message  DB 'Привет!',13,10,'$'
   .CODE
   mov    ax,@Data
   mov    dx,ax                   ; установить регистр DS таким
                                  ; образом, чтобы он указывал
                                  ; на сегмент данных
   mov    ah,9                    ; функция DOS вывода строки
   mov    dx,OFFSET Message       ; ссылка на сообщение "Привет!"
   int    21h                     ; вывести "Привет!" на экран
   mov    ah,4ch                  ; функция DOS завершения
                                  ; программы
   int    21h                     ; завершить программу
   END

     После того, как вы введете эту программу,  сохраните  ее  на
диске.

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


                Ассемблирование вашей первой программы
-----------------------------------------------------------------

     После того, как вы сохранили файл HELLO.ASM, вы захотите за-
пустить  программу.  Однако,  перед тем, как вы сможете ее запус-
тить, вам потребуется преобразовать программу в выполняемый  вид.
Как  показано  на  Рис.  2.1,  где изображен полный цикл создания
программы (редактирование, ассемблирование, компоновка и выполне-
ние), это потребует двух дополнительных шагов - ассемблирования и
компоновки.

                          Создание новой программы
                                     |
    -------------------------------->|
    |                                |
    |                          Редактирование
    |                                |
    |                                V
    |          ------------------------------------------------
    |          |     Исходный файл Ассемблера HELLO.ASM       |
    |          ------------------------------------------------
    |                                |
    |                         Ассемблирование
    |                                |
    |                                V
    |          -----------------------------------------------
    |          |          Объектный файл HELLO.OBJ           |
    |          -----------------------------------------------
    |                                |
    |                            Компоновка
    |                                |
    |                                V
    |          -----------------------------------------------
    |          |         Выполняемый файл HELLO.EXE          |
    |          -----------------------------------------------
    |                                |
    |                            Выполнение
    |    ----------------------      |
    ----( Если нужны изменения )------
         ----------------------

     Рис. 2.1 Редактирование, ассемблирование, компоновка  и  вы-
полнение программы.

     На этапе ассемблирования ваш исходный код (текст  программы)
превращается  в промежуточную форму, которая называется объектным
модулем, а на этапе компоновки один или несколько модулей  комби-
нируются в выполняемую программу. Ассемблирование и компоновку вы
можете выполнять с помощью командной строки.

     Для ассемблирования файла HELLO.ASM наберите команду:

        TASM hello

и нажмите клавишу ENTER. Если  вы  не  задали  другое  имя,  файл
HELLO.ASM  будет  ассемблирован  в  файл HELLO.OBJ. (Заметим, что
расширение имени файла вводить не требуется. Турбо Ассемблер под-
разумевает в этом случае, что файл имеет расширение .ASM.) На эк-
ране вы увидите следующее:

 Turbo Assembler Version 2.0 Copyright (C) 1990        (1)
                                     by Borland International
 Inc.
 Assembling file: HELLO.ASM       (2)
 Error messages: None             (3)
 Warning messages: None           (4)
 Remaining memory: 266K           (5)

1 - Турбо Ассемблер, версия 2.0; авторские права  фирмы  Borland,
1990 г.; 2 - ассемблирован файл HELLO.ASM; 3 - сообщения об ошиб-
ках: нет; 4 - предупреждающие сообщения: нет; 5 - остается  памя-
ти: 266К

     Если вы введете файл HELLO.ASM в точности так, как показано,
то вы не получите никаких предупреждающих сообщений или сообщений
об ошибках. Если вы получаете такие сообщения, они появляются  на
экране  наряду  с номерами строк, указывающими строки, где содер-
жатся ошибки. При получении сообщений об ошибках проверьте исход-
ный код (текст) программы и убедитесь, что он выглядит точно так,
как исходный код в нашем примере,  а  затем  снова  ассемблируйте
программу.


                         Компоновка программы
-----------------------------------------------------------------

     После ассемблирования файла HELLO.ASM вы продвинулись только
на  один шаг в процессе создания программы. Теперь, если вы ском-
понуете только что полученный объектный код в выполняемый вид, вы
сможете запустить программу.

     Для  компоновки  программы  используется  программа   TLINK,
представляющая собой поставляемый вместе с Турбо Ассемблером ком-
поновщик. Введите командную строку:

       TLINK HELLO

     Здесь опять не требуется  вводить  расширение  имени  файла.
TLINK  по  умолчанию  предполагает, что этим расширением является
расширение .OBJ. Когда компоновка завершится (самое большее через
несколько  секунд),  компоновщик  автоматически  присвоит файлу с
расширением .EXE имя, совпадающее с именем вашего объектного фай-
ла (если вы не определили другое имя). При успешной компоновке на
экране появляется сообщение:

     Turbo Linker Version 3.0 Copyright (c) 1987, 1990 by by Bor-
land International Inc.

     В процессе компоновки  могут  возникнуть  ошибки  (в  данной
программе  это маловероятно). Если вы получили сообщения об ошиб-
ках компоновки (они выводятся на экран),  измените  исходный  код
программы так, чтобы он в точности соответствовал тексту програм-
мы в приведенном выше примере, а затем снова выполните  ассембли-
рование и компоновку.


Запуск вашей первой программы
-----------------------------------------------------------------

     Теперь программу можно запустить на выполнение. Для этого  в
ответ на подсказку операционной системы DOS введите hello и  наж-
мите ENTER. На экран выведется сообщение:

        Привет!

Пока это все. Вы только что создали и выполнили свою первую прог-
рамму на Ассемблере!.


                            Что происходит?
-----------------------------------------------------------------

     Теперь, когда вы получили и выполнили  программу  HELLO.ASM,
давайте  вернемся  назад  и рассмотрим подробно, что происходит с
момента ввода текста программы до ее выполнения.

     Когда вы первый раз вводите исходный код программы на ассем-
блере,  ее  текст сохраняется текстовым редактором в памяти. Если
питание компьютера в этот момент по какой-то причине будет выклю-
чено,  исходный код будет потерян, поэтому мы рекомендуем вам по-
чаще сохранять исходный код, чтобы избежать такой трагедии. После
того,  как  вы  сохраните исходный код на диске, постоянная копия
текста будет записана в файл HELLO.ASM, который сохранится и пос-
ле выключения или сбоя питания (однако этот файл может быть поте-
рян в результате порчи диска, поэтому рекомендуется регулярно де-
лать  резервные  копии  файлов). Файл HELLO.ASM - это стандартный
текcтовый файл в коде ASCII. Вы можете вывести его на экран, вве-
дя в ответ на подсказку DOS команду:

        type hello.asm

Его можно также отредактировать с помощью текстового редактора.

     Когда вы ассемблируете файл HELLO.ASM, Турбо Ассемблер прев-
ращает  текст  инструкций в этом файле в их двоичный эквивалент в
объектном файле HELLO.OBJ. Этот файл является промежуточным  фай-
лом (промежуточным звеном в процессе перехода от текстового к вы-
полняемому файлу). Файл HELLO.OBJ содержит всю информацию,  необ-
ходимую для создания выполняемого кода из инструкций, содержащих-
ся в файле HELLO.ASM, но она записана в виде,  который  позволяет
комбинировать ее  с другими объектными файлами для создания одной
программы. В Главе 5 ("Более подробно о программировании на Турбо
Ассемблере")  вы увидите,  насколько полезным это может оказаться
при разработке больших программ.

     При компоновке файла HELLO.OBJ утилита TLINK преобразует его
в выполняемый файл HELLO.EXE,  который вы запускаете, введя hello
в ответ на подсказку DOS.

     Теперь введите команду:

        dir hello.*

При этом будет выведен список файлов HELLO на  диске.  Это  будут
файлы HELLO.ASM, HELLO.OBJ, HELLO.EXE и HELLO.MAP.

Оглавление

Оставить комментарий

Комментарий:
можно использовать BB-коды
Максимальная длина комментария - 4000 символов.
 

Комментарии

1.
54K
26 октября 2009 года
an777
0 / / 26.10.2009
+2 / -0
Мне нравитсяМне не нравится
26 октября 2009, 12:35:18
Ошибка:
mov ax,@Data
mov dx,ax
надо DS в место DX... :)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог