CodeNet / Языки программирования / Ассемблер / СПРАВОЧНИК по системе программирования ТУРБО АССЕМБЛЕР 2.0
СПРАВОЧНИК по системе программирования ТУРБО АССЕМБЛЕР 2.0
Параметр /X
-----------------------------------------------------------------
Функция: Включает в листинг блоки условного ассемблирования.
Синтаксис: /X
Примечания: Если при вычислении блоков IF, IFNDEF, IFDEF и
т.д. получается значение FALSE, то параметр /X приводит к тому,
что операторы, содержащиеся внутри условного блока, будут включе-
ны в листинг ассемблирования. по данной директиве в листинг будут
также включены сами директивы условного ассемблирования (обычно
они в листинг не включаются).
Вы должны в командной строке или с помощью параметра /L за-
дать также необходимость генерации файла листинга, иначе параметр
/X действовать не будет.
Пример:
TASM /X TEST1
Параметр /Z
-----------------------------------------------------------------
Функция: Выводит на экран наряду с сообщениями об ошибке со-
ответствующие строки исходного текста.
Синтаксис: /Z
Примечания: Параметр /Z указывает Ассемблеру, что при гене-
рации сообщения об ошибке на экран нужно вывести соответствующую
строку исходного файла (где эта ошибка возникла). Вызвавшая ошиб-
ку строка выводится перед сообщением об ошибке. При запрещении
данного параметра Турбо Ассемблер просто выводит сообщение, опи-
сывающее ошибку.
Пример:
TASM /Z TEST1
Параметр /ZD
-----------------------------------------------------------------
Функция: Разрешает включение в объектные файлы информации о
номерах строк.
Синтаксис: /ZD
Примечания: Параметр /ZD приводит к тому, что Турбо Ассемб-
лер будет помещать в объектные файлы информацию о номерах строк.
Это позволяет автономному отладчику фирмы Borland (Турбо отладчи-
ку) выводить на экран текущее место в исходном коде, но не позво-
ляет ему осуществлять доступ к элементам данных.
Если при попытке выполнения отладки программы с помощью Тур-
бо отладчика вам не хватит памяти, вы можете использовать пара-
метр /ZD для одних модулей и параметр /ZI - для других.
Пример:
TASM /ZD TEST1
Параметр /ZI
-----------------------------------------------------------------
Функция: Разрешает включение в объектный файл информации для
отладки.
Синтаксис: /ZI
Примечания: Параметр /ZI указывает Турбо Ассемблеру, что в
объектный файл нужно вывести полную информацию для отладки. Эта
информация включает в себя записи о номерах строк (для синхрони-
зации вывода на экран исходного текста) и информацию о типах дан-
ных, позволяющую модифицировать и проверить данные программы.
Параметр /ZI позволяет вам использовать все средства Турбо
отладчика для прохождения программы и проверки и изменения ваших
элементов данных. Вы можете использовать параметр /ZI для всех
модулей программы или только для тех из них, отладка которых вас
интересует. Поскольку параметр /ZI добавляет информацию в объект-
ные и выполняемые файлы, может оказаться нежелательным его ис-
пользование для всех модулей программы при выполнении программы
Турбо отладчиком (например, может возникать ситуация нехватки па-
мяти).
Пример:
TASM /ZI TEST1
Косвенные командные файлы
-----------------------------------------------------------------
В любой момент, когда вы вводите командную строку, Турбо Ас-
семблер позволяет вам задавать косвенный командный файл, с по-
мощью указания перед его именем символа @. Например:
TASM /DTESTMODE @MYPROJ.TA
Эта команда приводит к тому, что содержимое файла MYPROJ.TA
становится частью командной строки (как если бы вы ввели ее со-
держимое непосредственно).
Это полезное средства позволяет вам поместить наиболее часто
используемые командные строки и списки файлов в отдельный файл.
При этом нет необходимости помещать всю командную строку в один
косвенный файл, поскольку в одной командной строке допускается
использовать несколько исходных файлов с обычными аргументами,
например:
TASM @MYFILES @IOLIBS /DBUF=1024
Таким образом вы можете использовать длинный список стандар-
тных файлов и параметров, благодаря чему можно легко изменять по-
ведение Ассемблера при каждом ассемблировании.
Вы можете либо поместить все имена и параметры файлов в одну
строку командного файла, либо разбить их на несколько строк, как
это необходимо.
Файлы конфигурации
-----------------------------------------------------------------
Турбо Ассемблер позволяет вам также поместить наиболее часто
используемые параметры в файл конфигурации в текущем каталоге.
Таким образом, когда вы запускаете Турбо Ассемблер, он будет в
текущем каталоге искать файл TASM.CFG. Если Турбо Ассемблер нахо-
дит этот файл, то он будет интерпретировать его, как косвенный
файл, и обрабатывать его в командной строке первым.
Это может оказаться полезным, когда вы формируете "проект"
программы (то есть программа включает в себя несколько файлов), и
все файлы проекта находятся в одном каталоге. При этом вы хотите,
например, всегда выполнять ассемблирование с использованием эму-
лирования инструкций с плавающей точкой (параметр /E). Для этого
вы можете поместить параметр в файл TASM.CFG, после чего его не
нужно будет задавать каждый раз при запуске Турбо Ассемблера.
Содержимое файла конфигурации имеет тот же формат, что и
косвенный файл. Этот файл может содержать любую допустимую в ко-
мандной строке информацию и содержать столько строк, сколько не-
обходимо. Параметры обрабатываются так, как если бы они содержа-
лись на одной строке.
Содержимое файла конфигурации обрабатывается до всех других
аргументов командной строки. Это позволяет вам отменить любой па-
раметр, заданный в файле конфигурации, просто указав в командной
строке параметр, который имеет противоположное действие. Напри-
мер, если ваш файл конфигурации содержит параметры:
/A /E
и вы вызываете Турбо Ассемблер командой:
TASM /S /R MYFILE
где MYFILE - файл вашей программы, то ассемблирование будет вы-
полнено с последовательным упорядочиванием сегментов (/S) и ре-
альными инструкциями с плавающей точкой (/R), хотя в файле конфи-
гурации содержатся директивы /A и /E, задающие упорядочивание
сегментов по алфавитному порядку и эмулирование инструкций с пла-
вающей точкой.
Глава 4. Природа языка Ассемблера
-----------------------------------------------------------------
Как мы уже говорили ранее, язык Ассемблера - это "родной"
язык компьютера, Чтобы понять, что это означает, нужно сначала
разобраться, что же представляет собой сам компьютер. Затем мы
расскажем вам о том, что делает язык Ассемблера уникальным среди
других языков программирования.
В данной главе мы рассмотрим компьютеры вообще и процессор
8086 в частности. Это позволит вам понять сильные стороны прог-
раммирования на языке Ассемблера для процессора 8086. Мы также
затронем те аспекты программирования, которые относятся конкретно
к компьютерам IBM PC.
Архитектура компьютера
-----------------------------------------------------------------
На нижнем уровне компьютер - это не что иное, как устройство
для перемещения данных из одного места в памяти (или на устройс-
тве) в другое, при котором иногда выполняются также логические
или арифметические преобразования данных. Для наших целей полез-
нее, однако, рассматривать компьютер, как систему, состоящую из
пяти функциональных подсистем: ввода, управления, арифметической
и логической обработки, памяти и ввода (см. Рис. 4.1).
------------------------------------
| Арифметическая подсистема |
| (сложение, вычитание, умножение, |
| деление, операции "И", "ИЛИ", |<----
| "исключающее ИЛИ" и т.д.) | |
------------------------------------ |
|
---------------------- ------------------------- |
| Подсистема ввода | | Подсистема управления |<-----
| (клавиатура, |<------>| (координация всех |
| "мышь", манипуля- | ---->| функций) |<-----
| тор "джойстик" и | | ------------------------- |
| т.д.) | | |
---------------------- | ------------------------- |
| | Подсистема памяти | |
---------------------- | | (до 1 мегабайта па- |<-----
| Подсистема вывода | | | мяти с прямым досту- |
| (дисплей, принтер, |<--- | пом или памяти, дос- |
| графопостроитель, | | тупной только по чте- |
| диск) | | нию - ПЗУ) |
---------------------- -------------------------
Рис. 4.1 Пять подсистем компьютера.
(В данном случае мы говорим о компьютерах вообще, компьюте-
ров с процессорами 8088 мы кратко коснемся далее.)
Арифметическая подсистема компьютера - это тот аспект, в ко-
тором большинство людей привыкли рассматривать весь компьютер.
Ведь что такое, компьютер, как не вычислительное устройство? Ока-
зывается, однако, что на операции с числами большинство компьюте-
ров тратит очень мало времени. Тем не менее арифметическая под-
система очень важна. Кроме того, она выполняет не только
арифметические операции (сложение, вычитание, умножение и деле-
ние), но и такие логические операции, как "И" (and), "ИЛИ" (or) и
"исключающее ИЛИ" (xor).
Арифметические операции - это, конечно, хорошо, но откуда
поступают исходные значения для операций и куда записывается их
результат? Здесь выполняет свои функции подсистема памяти компью-
тера, предоставляя постоянно доступную для хранения многих тысяч
символов и чисел память. В компьютерах имеются также дисководы на
жестких и гибких дисках, обеспечивающие постоянную, но относи-
тельно медленную память для данных большого объема. Однако такие
дисководы представляют собой устройства ввода-вывода, а не часть
подсистемы памяти.
Подсистема ввода позволяет программам обрабатывать данные
из внешней среды, начиная от отдельных нажатий клавиш и перемеше-
ний манипулятора типа "мышь", до целых баз данных, хранящихся на
дисках в виде файлов. Подсистема вывода позволяет программам вы-
водить данные и результаты на экран или принтер, записывать дан-
ные в файлы на дисках или магнитных лентах. Программы без ввода
или вывода довольно редки, поскольку они не могут воспринимать
данные из внешней среды и не могут ничего сделать с полученными
результатами.
Наконец, подсистема управления объединяет работу остальных
четырех подсистем и управляет перемещением данных.
Подсистема управления и арифметическая подсистема вместе об-
разуют то, что известно, как обрабатывающее устройство или про-
цессор. Процессор - это ядро любого компьютера, обеспечивающее
обработку данных и управление подсистемами памяти, ввода и выво-
да. Процессор задает тон всей работе компьютера, так как именно
процессор управляет работой каждой из подсистем и координирует их
в один согласованно работающий модуль. В настоящее время весь
процессор часто представляет собой всего лишь одну интегральную
схему. Именно таким процессором является процессор 8088, выполня-
ющий полную арифметическую обработку, управление и имеющий интер-
фейс с вводам, выводом и памятью.
Поняв, что такое процессор, мы выясним связь между архитек-
турой компьютера и уникальной природой языка Ассемблера.
