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




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

          PROG ENDS
          end start


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

                        Директивы EVEN и EVENDATA
     ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

          Вы можете использовать директиву EVEN для округления счетчи-
     ка адреса до следующего четного адреса.  Директива EVEN позволяет
     вам выравнивать  код для эффективного доступа к процессорам,  ис-
     пользующим 16-разрядную шину данных. Производительность процессо-
     ров, использующих  8-разрядную  шину  данных,  директивой EVEN не
     улучшается.

          Директива EVENDATA выполняет выравнивание на четную границу,
     изменяя счетчика адреса без генерации данных, что полезно исполь-
     зовать для  неинициализированных  сегментов.  Директивы  EVEN   и
     EVENDATA приводят к тому, что если выравнивание текущего сегмента
     выполнено недостаточно строго, Турбо Ассемблер выводит предупреж-
     дающее сообщение.

          Если когда  встречается  директива EVEN счетчик адреса имеет
     нечетное значение,  то Турбо Ассемблер помещает  в  сегмент  один
     байт или инструкцию NOP,  чтобы счетчик адреса стал четным. С по-
     мощью заполнения инструкциями NOP директиву EVEN можно в  сегмен-
     тах кода,  не вызывая на этапе работы программы выполнения невер-
     ных инструкций. Если счетчик адреса уже имеет четное значение, то
     данная директива не действует.

          Аналогично, если  счетчик  адреса  имеет  нечетное значение,
     когда встречается директива EVENDATA,  Турбо Ассемблер генерирует
     неинициализированный байт.

          Приведем следующий пример использования директивы EVEN:

          EVEN
          @@A:      lodsb
                    xor bl,al ; выравнивание для эффективного доступа
                    loop  @@a

          Приведем пример использования директивы EVENDATA:

          EVENDATA
          VAR1      DW   0        ; выравнивание для эффективного
                                  ; доступа 8086


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

                             Директива ALIGN
     ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

          Для выравнивания счетчика  адреса на адрес, значение которо-
     го равно степени 2, можно использовать директиву ALIGN. Директива
     ALIGN имеет следующий синтаксис:

          ALIGN граница

     где "граница" должна быть степенью 2.

          Если счетчик  адреса еще не соответствует смещению,  которое
     представляет собой произведение "границы", Турбо Ассемблер, чтобы
     присвоить счетчика адреса нужный адрес,  вставляет в сегмент инс-
     трукции NOP (нет операции).

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

          Например, если вы определили сегмент следующим образом:

          CODE SEGMENT PARA PUBLIC

     затем вы  можете  задать ALIGN 16 (что эквивалентно PARA),  но не
     ALIGN 32,  как как это более строгое выравнивание, чем выравнива-
     ние, заданное в директиве SEGMENT с помощью PARA. Если выравнива-
     ние сегменте недостаточно строгое,  то директива ALIGN генерирует
     предупреждающее сообщение.

          Использование директивы ALIGN показано в следующем примере:

          ALIGN 4             ; выравнивание на границу DWORD для 386
          BignNum  DD    12345678

                            Определение меток
     ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

          Метки позволяют  вам  присваивать  значения идентификаторам.
     Существует три способа определения меток:

          - использование операции :;
          - использование директивы LABEL;





- использование операции :: (MASM 5.1). Операция : ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Операция : определяет ближнюю метку кода и имеет синтаксис: имя: Турбо Ассемблер 3.0/tasm/#1-2 = 174 = где "имя" - это идентификатор, который вы не объявляли ранее в исходном коде. Ближние метки кода вы можете размещать на строке кода, где содержится только одна метка, или в начале строки перед инструкцией. Обычно ближние метки кода используются в качестве адреса перехода в инструкциях JMP и CALL в том же сегменте. Если вы не используете директиву PUBLIC, чтобы метка была доступна из других файлов, она доступна только в текущем исходном файле. Данная директива работает точно также, как при использовании директивы LABEL для определения ближней метки (NEAR). Например, A: эквивалентно A LABEL NEAR. Приведем пример использования операции : jne A ; пропустить следующую инструкцию inc si A: ; jne передает управление сюда Турбо Ассемблер 3.0/tasm/#1-2 = 175 = Директива LABEL ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Директиву LABEL вы можете использовать для определения иден- тификатора заданного типа. Заметим, что синтаксис в режимах MASM и Ideal различен. В режиме Ideal задавайте: LABEL имя сложный_тип В режиме MASM используйте следующее: имя LABEL сложный_тип где "имя" - это идентификатор, который вы не определяли ранее в исходном файле. "Сложный_тип" описывает размер идентификатора и то, ссылается он на код или данные. См. Главу 5, в которой можно найти дальнейшую информацию о сложных типах. Если вы не используете директиву PUBLIC, чтобы метка была доступна из других файлов, она доступна только в текущем исходном файле. Вы можете использовать директиву LABEL для доступа к элемен- там различного размера, которые содержатся в структуре данных. Этот принцип иллюстрируется следующим примером: WORDS LABEL WORD ; доступ к "BYTES" как к ; WORDS BYTES DB 64 DUP (0) mov WORDS[2],1 ; запись в WORDS 1 Турбо Ассемблер 3.0/tasm/#1-2 = 176 = Директива :: ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Директива :: позволяет вам определить с областью действия, выходящей за рамки процедуры, в которой она находится. Это отли- чается от директивы : тем, что метки, определенные с помощью : имеют область действия только в текущей процедуре. Заметим, что :: отличается от : только когда вы задаете язык в операторе .MODEL. Приведем пример (файл DBLCOLON.ASM): VERSION M510 .MODEL SMALL,C .CODE A PROC NOP ASINGLE:NOP ADOUBLE::NOP NOP A ENDP B PROC NOP JMP ASINGLE ; приведет к ошибке JMP ADOUBLE RET B ENDP END


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