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

Ваш аккаунт

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

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

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

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

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

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


Оглавление

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

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

       DOSSEG
       .MODEL SMALL
       .STACK 100h
       .DATA
    MAXIMUM_STRING_LENGTH  EQU  1000
    StringToReverse        DB   MAXIMUM_STRING_LENGTH  DUP (?)
    ReverseString          DB   MAXIMUM_STRING_LENGTH  DUP (?)
       .CODE
       mov    ax,@Data
       mov    dx,ax             ; установить регистр DS таким
                                ; образом, чтобы он указывал
       mov    ah,3fh            ; функция DOS чтения ввода
       mov    bx,0              ; описатель стандартного ввода
       mov    cx,MAXIMUM_STRING_LENGTH ; считать до максималь-
                                ; ного числа символов
       mov    dx,OFFSET StringToReverse ; сохранить строку
       int    21h               ; получить строку
       and    ax,ax             ; были считаны символы?
       jz     Done              ; нет, конец
       mov    cx,ax             ; поместить длину строки в
                                ; регистр СХ, который можно
                                ; использовать, как счетчик
       push   cx                ; сохранить в стеке длину
                                ; строки
       mov    bx,OFFSET StringToReverse
       mov    si,OFFSET ReverseString
       add    si,cx
       dec    si                ; указывает на конец буфера
                                ; строки
    ReverseLoop:
       mov    al,[bx]           ; получить следующий символ
       mov    [si],al           ; сохранить символы в
                                ; обратном порядке
       inc    bx                ; указатель на следующий
                                ; символ
       dec    si                ; указатель на предыдущую
                                ; ячейку buffer
       loop   ReverseLoop       ; переместить следующий
                                ; символ, если он имеется
       pop    cx                ; извлечь длину строки
       mov    ax,40h            ; функция записи DOS
       mov    bx,1              ; описатель стандартного
                                ; вывода
       mov    dx,OFFSET ReverceString ; напечатать строку
    Done:
       mov    ah,4ch            ; функция DOS завершения
                                ; программы
       int    21h               ; завершить программу
       END

     Скоро вы увидите, что сможет делать эта программа. Для нача-
ла не забудьте ее сохранить (под именем REVERSE.ASM).

                     Запуск программы REVERSE.ASM
-----------------------------------------------------------------

     Для запуска программы REVERSE.ASM вы должны  сначала  ассем-
блировать ее:

        TASM reverse

а затем ввести:

        TLINK reverse

для создания выполняемого файла. Запустите программу, введя в от-
вет на подсказку DOS слово reverse. В случае вывода при ассембли-
ровании сообщений об ошибках, внимательно проверьте исходный код,
сравните его с приведенным текстом, а затем попытайтесь повторить
процесс.

     После запуска программы на экране останется  мерцающий  кур-
сор. Очевидно, программа ожидает, что вы что-нибудь введете. Поп-
робуйте ввести:

        ABCDEFG

а затем нажмите клавишу ENTER. Программа выведет на экран:

        GFEDCBA

и завершит работу. Снова введите reverse в командной  строке.  На
этот раз введите:

        0123456789

и нажмите клавишу ENTER. Программа выведет на экран:

        9876543210

     Теперь ясно, что делает программа REVERSE.ASM: она  изменяет
порядок  символов во введенной строке на обратный. Быстрая работа
со строками и символами - эта одна из областей, где  язык  Ассем-
блера  превосходно  демонстрирует свои качества. Вы увидите это в
следующих нескольких главах.

     Вас можно поздравить! Вы только что ввели, ассемблировали  и
скомпоновали  несколько  программ на Ассемблере и, таким образом,
ознакомились в действии с основами программирования на  Ассембле-
ре: вводом, обработкой данных и выводом.

     Если вы не хотите создавать объектный файл, но хотите  полу-
чить файл листинга, или если вы хотите получить файл перекрестных
ссылок, но не хотите создавать файл листинга или объектный  файл,
задайте в   качестве  имени  файла  пустое  (нулевое)  устройство
(NULL). Например, команда:

        TASM FILE1,,NUL,

ассемблирует файл FILE1.ASM в объектный файл FILE1.OBJ, не созда-
вая файла листинга, и создает файл перекрестных ссылок FILE1.XRF.

     Теперь вы готовы к тому,  чтобы  изучить  основные  элементы
программирования на  языке Ассемблер,  о которых рассказывается в
Главе 5 "Элементы программы на Ассемблере".



Глава 3. Работа с командной строкой Турбо Ассемблера
-----------------------------------------------------------------

     Данная глава посвящена ознакомлению  вас  с  необязательными
параметрами  командной  строки Турбо Ассемблера. Мы опишем каждый
параметр командной строки, которые  вы  можете  использовать  для
того,  чтобы  изменить поведение Ассемблера, и покажем, как и где
используются командные файлы. Наконец, мы опишем также файл  кон-
фигурации.

                    Запуск Турбо Ассемблера из DOS
-----------------------------------------------------------------

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

        TASM

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

-----------------------------------------------------------------
Turbo Assembler Version 2.0 Copyright (C) 1990
                                    by Borland International, Inc
Usage:

TASM [параметры] исх_файл [,объект_файл] [,листинг] [,пер_ссылки]

/a,/s         Упорядочивание  сегментов  по  алфавитному  порядку
              или порядку исходного кода

/c            Генерация в листинге перекрестных ссылок

/dSYM[=VAL]   Определяется SYM = 0 или SYM = VAL

/e,/r         Эмулируемые или действительные инструкции с плаваю-
              щей точкой

/h,/?         Выводится данная справочная информация

/lPATH        Включаемые файлы ищутся по маршруту,  определяемому
              PATH

/jCMD         Определяет начальную директиву Ассемблера (напри-
              мер, jIDEAL)

/kh#,/ks#     Мощность хеш-таблицы #, мощность объема строки #

/l,/la        Генерация листинга: l=обычный листинг, la=расширен-
              ный

/ml,/mx,/mu   Различимость в регистре букв идентификаторов:
              ml=все, mx=глобальные, mu=не различаются

/mv#          Задает максимальную длину идентификаторов

/m#           Разрешает  выполнение нескольких проходов для удов-
              летворения опережающих ссылок

/n            Подавление в листингах таблицы символов
              (идентификаторов)

/p            Проверка перекрытия сегмента кода в защищенном
              режиме

/q            Подавление записей .OBJ, не требующиеся при компо-
              новке

/t            Подавление сообщений при успешном ассемблировании

/w0,/w1,/w2   Задание  уровня предупреждение:  w0=нет
              предупреждений, w1=w2=есть предупреждения

/w-xxx,/w+xxx Запрещение или разрешение предупреждения типа xxx

/x            Включение в листинги блоков условного ассемблирова-
              ния

/zi,/zd       Информация об идентификаторах для отладки:  zi=пол-
              ная, zd=только о номерах строк
-----------------------------------------------------------------

     Рис. 3.1 Командная строка Турбо  Ассемблера.

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

     Общий вид командной строки выглядит следующим образом:

        TASM файлы [; файлы]...

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

        TASM /E FILE1; /A FILE2

     В общем случае группа файлов в командной строке может  иметь
вид:

 [параметр]...исх_файл [[+] исходный_файл]...
              [,[объектный_файл] [, [файл_листинга],
              [, [файл_перекрестных_ссылок]]

     Этот синтаксис показывает, что группа файлов может начинать-
ся с любого параметра, который вы хотите применить к этим файлам,
а затем могут следовать файлы,  которые вы хотите ассемблировать.
Именем файла может быть одно имя файла,  либо вы можете использо-
вать обычные трафаретные символы DOS * и ? для задания группы ас-
семблируемых файлов. Если расширение имени файла не указано, Тур-
бо Ассемблер использует по умолчанию расширение .ASM.

        TASM MYFILE,,,MYXREF

     По  этой  команде  файл  MYFILE.ASM  ассемблируется  в  файл
MYFILE.OBJ, листинг  выводится в файл с именем MYFILE.LST,  а пе-
рекрестные ссылки - в файл MYXREF.XRF.

     Если при спецификации ассемблируемых исходных файлов вы  ис-
пользуете  трафаретные  символы,  их можно использовать также для
задания имен файла листинга и объектного файла. Например, если  в
текущем каталоге содержатся файлы XX1.ASM и XX2.ASM, то командная
строка:

        TASM XX*,YY*

ассемблирует все файлы, начинающиеся с букв XX, генерирует объек-
тные  файлы,  имена  которых  будут начинаться с YY,  а остальную
часть имени формирует в соответствии с  именем  исходного  файла.
Результирующие объектные файлы получат, таким образом, имена YY1,
OBJ и YY2.OBJ.

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

        TASM FILE1,,NUL,

     Эта команда ассемблирует файл  FILE1.ASM  в  объектный  файл
FILE1.OBJ.  При этом файл листинга не создается, а создается файл
перекрестных ссылок FILE1.XRF.

Оглавление

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

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

Комментарии

1.
Аноним
Мне нравитсяМне не нравится
10 мая 2005, 14:38:55
Сделана опечатка в строчке:
mov dx,OFFSET Rever"c"eString ; напечатать строку
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог