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, выполня- ющий полную арифметическую обработку, управление и имеющий интер- фейс с вводам, выводом и памятью. Поняв, что такое процессор, мы выясним связь между архитек- турой компьютера и уникальной природой языка Ассемблера.