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




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

     где "язык" представляет собой C,  CPP,  PASCAL,  BASIC,  FORTRAN,
     PROLOG или  NOLANGUAGE и определяет соглашения конкретного языка,
     применяемые к имени переменной. Использование спецификатора языка
     в директиве PUBLIC временно переопределяет временно переопределя-
     ет текущую установку языка (по умолчанию NOLANGUAGE,  если другой
     язык не задан в директиве .MODEL).

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

          PUBLIC XYPROC          ; процедура общедоступна
          XYPROC PROC NEAR

                   Описание идентификаторов библиотеки
     ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

          Вы можете использовать идентификаторы, как динамические точ-
     ки входа для динамически компонуемых библиотек (DLL).  Для описа-
     ния идентификаторов,  которые будут доступны таким  образом,  ис-
     пользуйте директиву PUBLICDDL. Она имеет следующий синтаксис:

          PUBLICDLL [язык] идентификатор [,[язык] идентификатор] ...

          Турбо Ассемблер  описывает  идентификатор в объектном файле,
     как динамически компонуемую точку входа, благодаря чему они могут
     быть доступны в других программах. Спецификатор "язык" приводит к
     применению специфических для языка соглашений к конкретному имени
     идентификатора. Допустимыми спецификаторами языка являются специ-
     фикаторы C, CPP, PASCAL, BASIC, FORTRAN, PROLOG и NOLANGUAGE.

     Приведем пример кода с использованием PUBLICDLL:

          PUBLICDLL XYPROC          ; процедура XYPROC доступна как
          XYPOROXC PROC NEAR        ; динамически компонуемая точка
                                    ; входа

     Турбо Ассемблер 3.0/tasm/#2-2                              = 60 =


                   Определение внешних идентификаторов
     ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

          Внешние идентификаторы - это идентификаторы, которые опреде-
     лены вне модуля и которые вы можете использовать  внутри  модуля.
     Эти идентификаторы   должны  быть  описаны  с  помощью  директивы
     PUBLIC. Директива EXTRN имеет следующий синтаксис:

          EXTRN определение [,определение] ...

     где "определение" описывает идентификатор и имеет следующий  фор-
     мат:

          [язык] имя [[счетчик_1]] :сложный_тип [:счетчик_2]

                   Описание глобальных идентификаторов
     ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

          Глобальные идентификаторы действуют также,  как  общедоступ-
     ные, при этом вам не нужно определять PUBLIC или EXTRN.  Если пе-
     ременная определена в модуле,  она действует  как  общедоступная.
     Если нет,  она действует как внешняя.  Для определения глобальных
     идентификаторов вы можете использовать директиву GLOBAL. Директи-
     ва GLOBAL  имеет  тот же синтаксис,  что директивы PUBLIC и EXTRN
     (их синтаксис описан в предыдущих разделах).

          Директива GLOBAL позволяет вам иметь включаемый файл,  кото-
     рый будет включаться во все исходные модули.  Включаемый файл со-
     держит все совместно используемые данные,  определенные как  гло-
     бальные идентификаторы.  Когда  вы  в каждом модуле ссылаетесь на
     эти элементы данных,  директива GLOBAL  действует  как  директива
     EXTRN, описывая для другого модуля, как определены данные.

          Перед тем, как использовать его где-либо в исходном коде, вы
     должны описать идентификатор как GLOBAL.  Кроме того заметим, что
     при задании  аргументов директивы GLOBAL используется тот же син-
     таксис, что и в директиве EXTRN.

          Приведем пример:

          GLOBAL X:WORD, Y:BYTE
          X  DW 0                 ; идентификатор стал доступен в
                                  ; других модулях
          mov  al, Y              ; описан как внешний

                      Определение общих переменных
     ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

          Общие переменные действуют как внешние переменные,  но здесь
     есть одно существенное различие:  общие переменные распределяются
     компоновщиком. Общие переменные переменные на самом деле аналоги-
     чны глобальным переменным, но вы не можете присвоить им начальные

     Турбо Ассемблер 3.0/tasm/#2-2                              = 61 =

     значения. На эти неинициализированные переменные  можно ссылаться





из нескольких модулей. Для определения общей переменной вы можете использовать ди- рективу COMM. Она имеет следующий синтаксис: COMM определение [,определение]... Каждое "определение" описывает идентификатор и имеет следую- щий формат: [расстояние] [язык] имя_идентификатора[[счетчик_1]]: сложный_тип [счетчик_2] где поле "расстояние" не является обязательным и может быть FAR или NEAR. Если вы не зададите "расстояние", по умолчанию оно бу- дет соответствовать используемой модели памяти. Если вы не ис- пользуете упрощенные директивы сегментации, то по умолчанию ис- пользуется NEAR. В крошечной, малой и средней моделях по умолчанию также используется NEAR, а во всех других - FAR. Поле "язык" задает язык: C, PASCAL, BASIC, FORTRAN, PROLOG или NOLANGUAGE. Использование в директиве COMM спецификатора язы- ка временно переопределяет текущую установку языка (по умолчанию или заданную с помощью директивы .MODEL). Заметим, что для того, чтобы действовало данное средство, вам не обязательно использо- вать директиву .MODEL. Поле "имя_идентификатора" задает имя идентификатора, который должен быть общим, и память для которого должна выделяться на этапе компоновки. В этом поле можно также задавать коэффициент размера элемента массива "счетчик_1", который должен учитываться в вычисляемом объеме общей памяти. Если в качестве расстояния за- дано FAR, то компоновщик, использует значение "счетчика_2", чтобы указать, сколько имеется элементов с размером, равным произведе- нию основного размера элемента (который определяется его типом) на "счетчик_1". По умолчанию значение поля "счетчик_1" равно 1. "Сложный_тип" - это тип данных аргумента. Он может быть либо простым типом, либо сложным выражением с указателем. Более под- робно о синтаксисе сложного типа рассказывается в Главе 5. Необязательное значение "счетчик_2" определяет, сколько эле- ментов определяет эта общая переменная. Если вы не задаете это поле, то подразумевается значение 1. Полный объем памяти, выделя- емой для общей переменной, равен произведению значения "счет- чик_2" на длину, заданную полем "тип", и на значение "счетчик_1". В режиме MASM, предполагается, что общие идентификаторы, описанные вне любого сегмента, должны быть доступны с помощью ре- гистра DS, что не всегда может допустимым предположением. Убеди- тесь, что вы либо поместили в DS корректное значение сегмента, либо при ссылке на эти переменные используете переопределение Турбо Ассемблер 3.0/tasm/#2-2 = 62 = сегмента. В режиме Ideal Турбо Ассемблер корректно проверяет, яв- ляются ли общие переменные адресуемыми, используя любой из теку- щих сегментных регистров, описанный в директиве ASSUME. Приведем пример использования директивы COMM: COMM buffer:BYTE:512 ; во время компоновки выделяет- ; ся 512 байт COMM abc[41]:WORD:10 ; на этапе компоновки выделяет- ; ся память 820 байт (10 эле- ; ментов из 41 слова каждый) COMM FAR abc[41]:WORD:10 ; на этапе компоновки выделяет- ; ся 10 элементов из 82 байт ; (2 байта * 41 элемент) Включение библиотеки ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД В том случае, когда вы знаете, что ваш исходный файл будет всегда использовать подпрограммы заданной библиотеки, можно ис- пользовать директиву INCLUDELIB. Директива INCLUDELIB сообщает компоновщику, что нужно включить указанную библиотеку. В режиме Ideal эта директива имеет следующий синтаксис: INCLUDELIB "имя_файла" ; обратите внимание на кавычки! а в режиме MASM: INCLUDELIB имя_файла где "имя_файла" - это имя библиотеки, которую вы хотите включать с помощью компоновщика на этапе компоновки. Если вы не укажете в заданном имени файла расширение, то компоновщик подразумевает расширение .LIB. Приведем пример: INCLUDELIB "diskio" ; включает DISKIO.LIB Турбо Ассемблер 3.0/tasm/#2-2 = 63 = Глава 17. Генерация листинга ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД


Страницы : 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 52 53 54


adfun.ru









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

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

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

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