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




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


          end.

          Процедура AsmProc вызывает  процедуры  PublicProc,  NearProc
     или FarProc, используя директиву EXTRN следующим образом:

       DATA   SEGMENT WORD PUBLIC
              ASSUME  DS:DATA
              EXTRN   A:WORD                ; переменная из модуля
       DATA   ENDS

       CODE   SEGMENT BYTE PUBLIC
              ASSUME  CS:CODE
              EXTRN   PublicProc : FAR      ; дальняя процедура
                                            ; (экспортируется модулем)
              EXTRN   NearProc   : NEAR     ; ближняя процедура
                                            ; (локальная для модуля)
              EXTRN   FarProc    : FAR      ; дальняя процедура
                                            ; (локальна, но задана,
                                            ; как дальняя)
       AsmProc        PROC NEAR
                      PUBLIC AsmProc
                      CALL   FAR PTR PublicProc
                      CALL   NearProc
                      CALL   FAR PTR FarProc

     Турбо Ассемблер 3.0/tasm/#2-2                             = 122 =

                      mov    cx,ds:A        ; взять переменную из
                                            ; модуля
                      sub    cx,2           ; изменить ее
                      mov    ds:A,cx        ; записать ее обратно
                      RET
       AsmProc        ENDP
       CODE           ENDS
                      END

          Основная программа, которая проверяет эту программу  на  Ас-
     семблере и модуль Паскаля, выглядит следующим образом:

           program TSample;
           uses Sample;
           begin
               TestSample;
           end.

          Чтобы сформировать пример программы с  помощью  компилятора,
     работающего  в режиме командной строки, и Ассемблера, используйте
     следующие команды (или командный файл):

          TASM ASMPROC
          TPC /B SAMPLE
          TSAMPLE

          Так как внешняя подпрограмма должна объявляться в  программе
     Турбо  Паскаля на самом внешнем уровне процедур, вы не можете для
     доступа к объектам, являющимся локальными по отношению к процеду-
     рам  или функциям использовать описания EXTRN. Однако, ваша прог-
     рамма на  Турбо  Ассемблере при вызове из программы Турбо Паскаля
     может получить эти объекты, как значения параметров-переменных.

            Ограничения при использовании объектов типа EXTRN
     ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

          Синтаксис уточненного идентификатора Турбо Паскаля,  при ко-
     тором  для  доступа  к объекту в заданном модуле используется имя
     модуля и точка, несовместим с синтаксическими правилами Турбо Ас-
     семблера и будет, таким образом, отвергнут. Описание:

             EXTRN SYSTEM.Assing : FAR

     приведет к тому, что Турбо Ассемблер выдаст сообщение об ошибке.

          Имеется также два других ограничения на использование в Тур-
     бо  Паскале  объектов  EXTRN.  Первое из них состоит в том, что в
     ссылках на процедуру или функцию не могут  выполняться  арифмети-
     ческие операции с адресами. Таким образом, если вы объявите:

             EXTRN PublicProc : FAR

     то не сможете записать оператор вида:

     Турбо Ассемблер 3.0/tasm/#2-2                             = 123 =


             call PublicProc + 42

          Второе ограничение относится к тому, что  компоновщик  Турбо
     Паскаля  не  будет распознавать операции, которые разделяют слова
     на байты, поэтому вы не можете применять такие операции к  объек-
     там EXTRN. Например, если вы объявите:

             EXTRN i : WORD

     то не сможете использовать в модуле  Турбо  Ассемблера  выражения
     LOW i или HIGH i.






Использование корректировок сегментов ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Турбо Паскаль генерирует файлы .EXE, которые могут загру- жаться в память компьютера РС по любому доступному адресу. Пос- кольку в программе заранее неизвестно, куда будет загружен данный сегмент программы, компоновщик указывает загрузчику DOS.EXE, что нужно при загрузке скорректировать в программе все ссылки на сег- менты. После выполнения этих корректировок все ссылки на сегменты (такие, как CODE или DATA) будут содержать корректные значения. Ваша программа на Турбо Ассемблере может использовать это средство для получения адресов объектов во время выполнения. Предположим, например, что в вашей программе требуется изменить значение регистра DS, но вы не хотите сохранять в цикле исходное содержимое стека или перемещать эти значения во временную об- ласть. Вместо этого вы можете использовать операцию Турбо Ассем- блера SEG: . . . mov ax,SEG DATA ; получить фактический ; адрес глобального значения ; DS Турбо Паскаля mov ds,ax ; поместить его в DS для ; использования Турбо ; Паскалем . . . Когда ваша программа будет загружаться, DOS поместит коррек- тное значение SEG DATA прямо в поле промежуточного операнда инст- рукции MOV. Это наиболее быстрый путь перезагрузки сегментного регистра. Данный метод нужно также использовать, чтобы программы обс- луживания прерываний сохраняли информацию в глобальном сегменте данных Турбо Паскаля. Регистр DS не обязательно во время прерыва- Турбо Ассемблер 3.0/tasm/#2-2 = 124 = ния содержит значение DS Турбо Паскаля, но для получения доступа к переменным и типизованным константам Турбо Паскаля можно ис- пользовать указанную выше последовательность. Турбо Ассемблер 3.0/tasm/#2-2 = 125 = Устранение неиспользуемого кода ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД В Турбо Паскале имеются средства, обеспечивающие устранение неиспользуемого кода. Это означает, что в полученный в результате файл .EXE не будет включаться код процедур и функций, который ни- когда не выполняется. Но поскольку нет полной информации о содер- жимом модулей Турбо Ассемблера, Турбо Паскаль может выполнять для них только ограниченную оптимизацию. Турбо Паскаль будет устранять код модуля .OBJ в том и только в том случае, если к любой доступной процедуре или функции этого модуля нет обращения. Если же на какую либо процедуру или функцию имеется ссылка, то весь этот модуль используется. Чтобы добиться большей эффективности использования средства Турбо Паскаля по устранению неиспользуемого кода, неплохо было бы разбить программу на Ассемблере на небольшие модули, которые со- держали бы только несколько процедур или функций. Это позволило бы Турбо Паскалю, если он может это сделать, уменьшить объем ва- шей конечной программы. Соглашения Турбо Паскаля по передаче параметров ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Турбо Паскаль использует для передачи параметров стек цен- трального процессора (или, в случае передачи значений параметров с одинарной, двойной, расширенной точностью или сложного типа, стек арифметического сопроцессора). Параметры всегда вычисляются и заносятся в стек в том порядке, в котором они указываются в описании подпрограммы, слева направо. В данном разделе мы пояс- ним, как эти параметры представляются. Параметры-значения ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Параметр-значение - это параметр, значение которого не может изменяться подпрограммой, в которую он передается. В отличие от многих компиляторов, Турбо Паскаль не выполняет слепого копирова- ния в стек каждого параметра-значения: как мы далее поясним, ис- пользуемый метод зависит от типа. Скалярные типы ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Параметры-значения всех скалярных типов (boolean, char, shortint, byte, integer, word, longint, отрезки типов и перечис- лимые типы) передаются как значения через стек процессора. Если размер объекта составляет 1 байт, он заносится в стек, как полное 16-битовое слово, однако более значащий (старший) байт слова не содержит полезной информации. Если размер объекта равен двум бай- там, то он просто заносится в стек "как есть". Если объект имеет


Страницы : 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
Форумы политика, лучшие анекдоты
знакомства.