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




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

     где "элемент" может быть регистром или состоящим из одной лексемы
     элементом данных,  который можно заносить и извлекать из стека. В
     одной процедуре допускается использовать не  более  8  элементов.
     Например:

          .
          .
          .
          myproc PROC PASCAL NEAR
          ARG @source:DWORD,@dest:DWORD,@count:WORD
          USES cx,si,di,foo
              MOV cx,@count
              MOV foo,@count
              LES di,@dest
              LDS si,@source
              REP MOVSB
          ENDP
          .
          .
          .

          О сохранении регистров в языках Си и Паскаль можно подробнее
     узнать в Главе 18 и 19.

          Оператор USES можно использовать только  в  тех  процедурах,
     которые используют языковые соглашения, отличные от NOLANGUAGE.

              Вложенные процедуры и правила области действия
     ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

          Хотя вы можете вкладывать одну процедуру в другую,  все про-
     цедуры имеют глобальную область действия, Например:

          .
          .
          .
          test1 PROC FAR
             ; код процедуры

     Турбо Ассемблер 3.0/tasm/#1-2                             = 190 =

             CALL test2
             ; код процедуры
             RET
          test2 PROC NEAR
             ; код процедуры
             RET   ; ближний возврат
          test2 ENDP
          test1 ENDP
          .
          .
          .

          В данном примере вне охватывающей процедуры  можно  вызывать
     test1 и test2.

          Если вы  хотите получить локальные подпроцедуры, используйте
     имя с локальной областью действия, например:

          .
          .
          .
          LOCALS
          test1 PROC FAR        ; код процедуры
             RET
          @test2 PROC NEAR      ; код процедуры
             RET
          @test2 ENDP
          test1 ENDP
          .
          .
          .

                Примечание: Директива LOCALS  разрешает идентификаторы
           с локальной областью действия.  Подробнее об этом рассказы-
           вается в Главе 11.

          В данном коде в процедуре test1 вы можете  обратиться только
     к процедуре @test2.  Фактически,  если они не находятся в одной и
     той же  процедуре может  существовать несколько процедур с именем
     @test2. Например, допустимо следующее:

          .
          .
          .
          LOCALS
          test1 PROC FAR
             MOV si, OFFSET Buffer
             CALL @test2
             RET
          @test2 PROC NEAR           ; некоторый код
             RET
          @test2 ENDP

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






test2 PROC FAR MOV si,OFFSET Buffer2 CALL @test2 RET @test2 PROC NEAR ; некоторый код RET @test2 ENDP test2 ENDP . . . Следующий код недопустим: . . . lOCALS test1 PROC FAR MOV si,OFFSET Buffer CALL @test2 RET test1 ENDP @test2 PROC NEAR ; код процедуры RET @test2 ENDP . . . так как вызов @test2 задает локальный идентификатор для процедуры test1, а таких идентификаторов не существует. Описание процедур методов для объектов ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД При создании процедур методов для объектов применяются неко- торые специальные соглашения. Процедуры методов объектов должны иметь возможность должны иметь возможность доступа к объекту, с которым они работают. Таким образом, в качестве параметра проце- дуры должен использоваться указатель на объект. Турбо Ассемблер интерпретирует объекты достаточно гибко и позволяет использовать для передачи аргументов процедурам методов разнообразные соглашения. Эти соглашения ограничиваются только необходимостью взаимодействовать с объектами, создаваемыми на языке высокого уровня. Если вы пишете процедуру метода объекта на самом языке Ас- семблера, то может оказаться полезным использование соглашения, по которому аргументы передаются через регистры. В этом случае Турбо Ассемблер 3.0/tasm/#1-2 = 192 = вам следует написать процедуру метода, воспринимающую указатель на объект в регистре или паре регистров ES:DI). Если вы пишете процедуру метода, которая использует соглаше- ния по интерфейсу языка высокого уровня, то процедура должна воспринимать указатель объекта в одном из аргументов. Указатель объекта, передаваемый из объектно-ориентированных языков высокого уровня (таких как С++), представляет собой неявный аргумент, по- мещаемый в начало списка аргументов. Процедура метода, написанная на языке Ассемблера, должна явно включать в список аргументов указатель объекта. В противном случае вы можете получить непред- виденные результаты. Нужно помнить, что в зависимости от того, является ли объект ближним (NEAR) или дальним (FAR), указатель может быть величиной WORD или DWORD. Когда вы пишете на языке Ассемблера конструктор или деструк- тор, могут возникнуть другие сложности. Чтобы указать, что конс- труктор или деструктор должен выполнять определенные действия, С++ использует (при некоторых обстоятельствах) использует другие неявные аргументы. Примечание: Об используемых в С++ соглашениях по вызо- ву рассказывается в Главе 18. Конструкторам, написанным на языке Ассемблера, не обязатель- но требуется передавать указатель на объект. Если объект никогда не распределяется статически, то конструктор объекта всегда будет выделять для объекта память из динамически распределяемой облас- ти. Турбо Ассемблер 3.0/tasm/#1-2 = 193 = Глава 11. Управление областью действия идентификаторов ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД В Турбо Ассемблере и большинстве других языков программиро- вания идентификатор в зависимости от того, где он находится в мо- дуле, может иметь разное значение. Например, некоторые идентификаторы могут иметь одно и то же значение во всем модуле, а другие определены только для конкретной процедуры. Под областью действия понимается диапазон строк, в котором идентификатор имеет определенное значение. Для разработки прог- рамм, использующих принципы модульного программирования, правиль-


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