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




adfun.ru
Rambler's Top100 Rambler's Top100
    НА ГЛАВНУЮ
    РЕФЕРАТЫ
    ТОСТЫ
    ТЕСТЫ
    АВТО
    ДЛЯ СТУДЕНТА
    КНИГИ
    КОНТАКТ
 
Справочник по системе программирования Турбо Ассемблер 2.0
Автор ""
Размер 416131 Байт
Страница 46 из 51
СКАЧАТЬ КНИГУ ЦЕЛИКОМ

            mov   ax,1
            jmp   AddTwoToAX
 AddOneToAx:
            inc   ax
            jmp   AXIsSet
 AddTwoToAX:
            inc   ax
 AXIsSet:
            .
            .
            .

регистр AX будет содержать значение 3, а инструкции  ADD  и  JMP,
следующие за меткой AddOneToAX, никогда выполнены не будут. Здесь
инструкция:

            jmp   AddTwoToAX

указывает процессору 8086, что нужно установить  указатель  инст-
рукций IP в значение смещения метки AddTwoToAX, поэтому следующей
выполняемой инструкцией будет инструкция:

            add   ax,2

     Иногда совместно с  инструкцией  JMP  используется  операция
SHORT.  Для  указания  на целевую метку инструкция JMP обычно ис-
пользует 16-битовое смещение. Операция SHORT указывает Турбо  Ас-
семблеру,  что нужно использовать не 16-битовое, а 8-битовое сме-
щение (что позволяет сэкономить в инструкции JMP один байт). Нап-
ример,  последний фрагмент программы можно переписать так, что он
станет на два байта короче:

            .
            .
            .
            mov   ax,1
            jmp   SHORT AddTwoToAX
 AddOneToAx:
            inc   ax
            jmp   SHORT AXIsSet
 AddTwoToAX:
            inc   ax
 AXIsSet:
            .
            .
            .

     Недостаток использования операции SHORT (короткий) состоит в
том, что короткие переходы могут осуществлять передачу управления
на метки, отстоящие от инструкции JMP не далее, чем на  128  бай-
тов,  поэтому  в некоторых случаях Турбо Ассемблер может сообщать
вам, что метка недостижима с помощью короткого перехода.  К  тому
же  операцию  SHORT  имеет  смысл использовать для ссылок вперед,
поскольку для переходов назад (на предшествующие метки) Турбо Ас-
семблер автоматически использует короткие переходы, если на метку
можно перейти с помощью короткого перехода, и длинные в противном
случае.

     Инструкцию JMP можно использовать для перехода в другой сег-
мент  кода,  загружая  в одной инструкции и регистр CS, и регистр
IP. Например, в программе:

            .
            .
            .
 CSeg1      SEGMENT
            ASSUME   CS:Cseg1
            .
            .
            .
 FarTarget           LABEL   FAR
            .
            .
            .
 CSeg1      ENDS
            .
            .
            .
 CSeg2      SEGMENT
            ASSUME   CS:CSeg2
            .
            .
            .
            jmp   FarTarget  ; переход дальнего типа
            .
            .
            .
 CSeg2      ENDS
            .
            .
            .

выполняется переход дальнего типа.

     Если вы хотите, чтобы  метка  принудительно  интерпретирова-
лась,  как  метка  дальнего типа, можно использовать операцию FAR
PTR. Например, во фрагменте программы:





. . . jmp FAR PTR NearLabel nop NearLabel: . . . выполняется переход дальнего типа на метку NearLabel, хотя эта метка находится в том же сегменте кода, что и инструкция JMP. Наконец, вы можете выполнить переход по адресу, записанному в регистре или в переменной памяти. Например: . . . mov ax,OFFSET TestLabel jmp ax . . . TestLabel: . . . Здесь выполняется переход на метку TestLabel, так же, как и в следующем фрагменте: . . . .DATA JumpTarget DW TestLabel . . . .CODE . . . jmp [JumpTarget] . . . TestLabel: . . . Условные переходы ----------------------------------------------------------------- Описанные в предыдущем разделе инструкции переходов - это только часть того, что вам потребуется для написания полезных программ. В действительности необходима возможность писать такие программы, которые могут принимать решения. Именно это можно де- лать с помощью операций условных переходов. Инструкция условного перехода может осуществлять или нет переход на целевую (указанную в ней) метку, в зависимости от сос- тояния регистра флагов. Рассмотрим следующий пример: . . . mov ah,1 ; функция DOS ввода с клавиату- ; ры int 21h ; получить следующую нажатую ; клавишу cmp al,'A' ; была нажата буква "A"? je AWasTyped ; да, обработать ее mov [TampByte], al ; нет, сохранить символ . . . AWasTyped: push ax ; сохранить символ в стеке . . . Сначала в данной программе с помощью функции операционной системы DOS воспринимается нажатая клавиша. Затем для сравнения введенного символа с символом A используется инструкция CMP. Эта инструкция аналогична инструкции SUB, только ее выполнение ни на что не влияет, поскольку назначение данной инструкции состоит в том, чтобы можно было сравнить два операнда, установив флаги так же, как это делается в инструкции SUB. Поэтому в предыдущем при- мере флаг нуля устанавливается в значение 1 только в том случае, если регистр AL содержит символ A. Теперь мы подошли к основному моменту. Инструкция JE предс- тавляет инструкцию условного перехода, которая. осуществляет пе- редачу управления только в том случае, если флаг нуля равен 1. В противном случае выполняется инструкция, непосредственно следую- щая за инструкцией JE (в данном случае - инструкция MOV). Флаг


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