adfun.ru
 
BIGLIB
  большущая библиотека (9812 книг), можно не только прочитать но и скачать бесплатно
 
АСТРОЛОГИЯ
  книги по астрологии
 
КРИМИНАЛ
  книги про криминал
 
ДЕТЕКТИВЫ
  детективы известных
   писателей
 
ФАНТАСТИКА
  фентези, фантастика,   фантастические повести
 
ПРИКЛЮЧЕНИЯ
  книги про приключения,   путешествия
 
ПОЛИТИКА
  книги про политиков,   репрессии
 
ПСИХОЛОГИЯ
  разнообразная литература   по психологии
 
КЛАССИКА
  классическая литература
 
КОМПЬЮТЕРНАЯ
  ЛИТЕРАТУРА
  про компютерное железо,   документация, языки   программирования
 
РЕЛИГИЯ, АТЕИЗМ
  книги про религию
 
ФИЛОСОФИЯ
  книги, которые заставляют   задуматься над   окружающим тебя миром.
 
ЭНЦИКЛОПЕДИИ
  самые интересные   энциклопедии на
   разные темы
 
МЕДИЦИНА
  медицинские книги,   методички,
   народные лечебники
 
КУЛИНАРИЯ
  рецепты тортов,   консервирование,
  все о спиртных
  напитках.
 
СТИХИ
  стихи популярных и не   очень авторов
 
ТВОРЧЕСТВО
  народное творчество,   стихи, песни и т.д.
 
ЮМОР
  анекдоты, приколы,   смешные истории
 
ЛЮБОВНЫЙ РОМАН
  мир высоких чувств и   любовных грез
 
ЭРОТИКА
  эротические рассказы,   книги о технике секса,   кама-сутра и др.




adfun.ru
Rambler's Top100 Rambler's Top100
    НА ГЛАВНУЮ
    РЕФЕРАТЫ
    ТОСТЫ
    ТЕСТЫ
    АВТО
    ДЛЯ СТУДЕНТА
    КНИГИ
    КОНТАКТ
 
Турбо Ассемблер 3.0/tasm/#1-2
Автор ""
Размер 469003 Байт
Страница 47 из 51
СКАЧАТЬ КНИГУ ЦЕЛИКОМ

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

                     Переопределяемые идентификаторы
     ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

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

          foo     = 1
               mov ax,foo         ; поместить 1 в AX
          foo    = 2
               mov ax,foo         ; поместить в AX 2

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

             mov ax,foo         ; поместить 2 в AX!
          foo  = 1
             mov ax,foo         ; поместить 1 в AX
          foo  = 2              ; это определение расширяется на
                                ; начало модуля...
             mov ax,foo         ; поместить 2 в AX

          Типы переопределяемых  идентификаторов перечислены в следую-
     щем списке:

          - текстовая макрокоманда;

          - числовое выражение;


     Турбо Ассемблер 3.0/tasm/#1-2                             = 194 =

          - макрокоманда из нескольких строк;

          - структура/объединения;

          - таблица;

          - запись;

          - перечисление.

                Примечание: Об этом подробнее рассказывается  в  Главе
           5.

                     Область действия в границах блока
     ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

          Ограничение области действия границами блока позволяет иден-
     тификатору иметь область действия,  соответствующую процедуре или
     функции. Турбо Ассемблер поддерживает два типа области действия в
     границах блока: в стиле MASM и в стиле самого Турбо Ассемблера.



     Турбо Ассемблер 3.0/tasm/#1-2                             = 195 =

                       Директивы LOCALS и NOLOCALS
     ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

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

          LOCALS [префикс_идентификатора]

          Необязательное поле  "префикс_идентификатора" содержит иден-
     тификатор (размером в два символа), который Турбо Ассемблер будет
     использовать в качестве префикса локального идентификатора.  Нап-
     ример:

          LOCALS          ; по умолчанию подразумевается использование
                          ; в качестве префикса @@
          foo proc
          @@a:     jmp @@a ; этот идентификатор @@a относится к
                         ; процедуре FOO
          foo endp

          bar proc
          @@a:    jmp @@a ; этот идентификатор @@a относится к про-
                          ; цедуре BAR
          bar endp





Если вы хотите запретить идентификаторы с локальной областью действия, можно использовать директиву NOLOCALS. Она имеет следу- ющий синтаксис: NOLOCALS Заметим, что вы можете использовать идентификаторы с об- ластью действия в границах блока вне процедур. В этом случае об- ласть действия идентификатора определяется метками, заданными с помощью двоеточия, которые на являются идентификаторами с об- ластью действия в границах блока. Например: foo: ; начало области действия @@a: ; относится к области действия, начинающейся ; FOO: @@b = 1 ; относится к области действия, начинающейся ; FOO: BAR: ; начало области действия @@a = 2 ; относится к области действия, начинающейся ; BAR: Область действия в границах блока в MASM ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД В MASM версий 5.1 и 5.2 метки NEAR, определенные с помощью Турбо Ассемблер 3.0/tasm/#1-2 = 196 = директивы двоеточия (:), если они находятся в процедуре, и если вы выбрали в директиве MODEL соглашения языка, имеют область действия в границах блока. Однако эти идентификаторы не являются полными идентификаторами, имеющими область действия в границах блока: нигде в программе их нельзя определить никак иначе, чем как ближнюю метку. Например: varsion m510 model small,c codeseg foo proc a: jmp a ; относится к процедуре FOO foo endp bar proc a: jmp a ; относится к процедуре BAR bar endp a = 1 ; недопустимо! Локальные метки в стиле MASM ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД В MASM 5.1 и 5.2 предусмотрены специальные идентификаторы, которые вы можете использовать для управления областью действия ближних меток в небольшом диапазоне строк. Это идентификаторы @@, @F и @B. Когда вы описываете @@, как ближнюю метку, используя двоето- чие (:), то определяете уникальный идентификатор вида @@xxxx (где xxxx - это шестнадцатиричное число). @B ссылается на последний определенный таким образом идентификатор. @F ссылается на следую- щий идентификатор с определением такого вида. Например: version m510 @@: jmp @B ; перейти на предыдущий идентификатор @@ jmp @F ; перейти на следующий идентификатор @@ @@: jmp @B ; перейти на предыдущий идентификатор @@ jmp @F ; ошибка: нет следующего @@ Турбо Ассемблер 3.0/tasm/#1-2 = 197 = Глава 12. Определение данных ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Директивы определения данных используются для выделения байт в сегменте. Вы можете также использовать их для заполнения этих байт начальными данными и определения переменных данных. Все директивы определения данных имеют некоторые общие средства. Во первых они могут генерировать инициализированные данные и резервировать место для неинициализированных данных. Для инициализированных данных определяется некоторое начальное значе- ние. Неинициализированные данные определяются без задания началь- ного значения (говорят, что их начальное значение является неоп- ределенным). В директивах определения данных неинициализированные данные указываются с помощью символа ?. Все прочее должно предс- тавлять значение инициализированных данных. О том, как следует различать инициализированные и неинициализированные данные, расс- казывается в Главе 7. Другим средством, которое применяется во всех директивах определения данных, является использование для указания повторе- ния блока данных ключевого слова DUP. Приведем общий синтаксис всех директив распределения данных: [имя_директивы [выражение_dup [выражение_dup...]]


Страницы : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 [47] 48 49 50 51


adfun.ru









Форум раскрутка сайта и интернет-реклама
реклама - рекламное агентство -
Интернет PR агентство чат и форум
волчат знакомства - сайт знакомств
бесплатные компьютерные игры
фото знакомства
новые стеклопакеты -
качественное остекление балконов
портал - пластиковые окна -
закажите окна пвх в Москве

частная стоматология в Москве:
надежная стоматологическая клиника
протезирование зубов и
отбеливание зубов в стоматологии
Музыка - скачать mp3 музыка
каталог партнерские программы
ручной бесплатный обмен ссылками цифровые камеры цифровые фотоаппараты -
цифровые видеокамеры

театры - заказ билетов в театр -
магазин - продажа компьютеров
в Москве форум Испания - жилье -
недвижимость в испании

турфирма - испания туры
Переводы - бюро переводов
Законы - закон о товарных знаках,
Грузовые перевозки. АсМАП. Дальнобой закон о рекламе
Интернет казино
реклама на форуме и контекстная реклама
на Яндексе Баннерная сеть и
интернет каталог сайтов Holiday.Ru
Форумы политика, лучшие анекдоты
знакомства.