Связь и интернет Архив Программирование
   
Сделать стартовойСделать закладку            
   ПОИСК  
   
Главная / Турбо Ассемблер / Использование Турбо Ассемблера /
8  Perl
8  PHP
8  JavaScript
8  HTML
8  DHTML
8  XML
8  CSS
8  C / C++
8  Pascal и Delphi
8  Турбо Ассемблер
8  MySQL
8  CASE-технологии
8  Алгоритмы
8  Python
8  Обратная связь
8  Гостевая книга
Новости о мире


Использование выражений и значений идентификаторов - Программирование от RIN.RU
Использование выражений и значений идентификаторов



Описание сложного адресного подтипа


Некоторые директивы позволяют вам описывать сложные адресные подтипы. Эти выражения типов аналогичны тем, которые используются в языке Си, поскольку они представляют несколько уровней косвенности указателя. Например, сложное выражение типа:


PTR WORD


представляет указатель на слово. (Размер указателя зависит от размера модели сегментации, которую вы выбираете с помощью директивы MODEL.)


Сводный синтаксис сложных адресных подтипов приведен в таблице:


Сложные адресные подтипы
СинтаксисЗначение
простой_адресный_подтипПодтип заданного адреса.
[раст]PTR[сложный_адресный_подтип]Указатель на заданный сложный адресный подтип, размер которого определяется текущей директивой MODEL или заданным расстоянием (если они присутствуют).



Необязательный параметр расстояния вы можете описать следующим путем:


Синтаксис расстояния
СинтаксисЗначение
NEAR Используется ближний указатель, который может быть 16 или 32-разрядным, в зависимости от текущей модели.
FARИспользуется дальний указатель, который может быть 32 или 48-разрядным, в зависимости от текущей модели.
SMALL NEARИспользуется 16-разрядный указатель (только для процессоров 80386 и 80486).
LARGE NEARИспользуется 32-разрядный указатель (только для процессоров 80386 и 80486).
SMALL FARИспользуется 32-разрядный дальний указатель (только для процессоров 80386 и 80486).
LARGE FARИспользуется 48-разрядный дальний указатель (только для процессоров 80386 и 80486).



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


Выражения


Использование выражений позволяет вам получать модульный код, поскольку вы можете символически представлять в программе значения. Турбо Ассемблер выполняет все повторные вычисления, необходимые при изменениях (и не требует этого от вас).


В присваиваниях Турбо Ассемблер использует стандартное инфиксное обозначение. Выражения могут содержать операнды и унарные или бинарные операции. Унарная операция помещается перед одиночным операндом; бинарные операции помещаются между двумя операндами. Примеры простых операций показаны в следующей таблице.


Простые выражения
ВыражениеЧто получается при вычислении
5константа 5
-5 константа -5
4+3константа 7
4*3константа 12
4*3+2*1константа 14
4*(3+2)*1константа 21



В этом приложении содержится полная грамматика в форме Бэкуса-Наура, используемая при синтаксическом анализе выражений в режимах MASM и Ideal. Эта грамматика последовательно описывает синтаксис выражений Турбо Ассемблера, а также старшинство операций.


Точность в выражениях


Турбо Ассемблер в режиме Ideal всегда использует 32-разрядную арифметику. В режиме MASM Турбо Ассемблер использует 16- или 32-разрядную арифметику, в зависимости от выбора процессора 80386. Таким образом, некоторые выражения, в зависимости от того, какой процессор выбирается, могут давать разные результаты. Например, при вычислении:


(1000h * 1000h) / 1000h


получается 1000h при выборе процессора 80386 или 0 при выборе процессоров 8086, 80186 или 80286.


Константы в выражениях


В качестве операндов в выражениях вы можете использовать константы, например:


mov ax,5 ; "5" - это операнд-константа


Идентификаторы в выражениях


Когда вы используете в выражении идентификатор, возвращаемое значение зависит от типа идентификатора. Вы можете использовать идентификатор сам по себе или в сочетании с определенными унарными операциями, которые созданы для выделения другой информации из величины, представляемой идентификатором.


<<<  НазадВперед  >>>
 1  2  3  4  5  6  7 


 8  Комментарии к статье  8 8  Обсудить в чате

8  В тему

Начало работы на Турбо Ассемблере

Использование директив и параметров

Общие принципы программирования

Объектно-ориентированное программирование

Директивы выбора процессора

Использование моделей памяти программы и сегментации

Определение типов данных

Задание и использование счетчика адреса

Описание процедур

Управление областью действия идентификаторов

Определение данных

Расширенные инструкции

Использование макрокоманд

Использование условных директив

Интерфейс с компоновщиком

Генерация листинга

Интерфейс Турбо Ассемблера и Borland C++

Интерфейс Турбо Ассемблера с Турбо Паскалем

 
  
  
    Copyright ©  RIN 2003 - 2004      * Обратная связь