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




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


ведь делают они одно и то же? Это так, но в то время,  как  инст-
рукция  ADD  занимает  3  байта, инструкция INC занимает только 1
байт и выполняется быстрее. Фактически, более экономно  выполнить
две  операции INC, чем прибавить к регистру размером в слово зна-
чение 2 (увеличение и уменьшение регистров и переменных в  памяти
размером в байт занимает 2 байта, что так же короче, чем сложение
и вычитание).

     Короче говоря, инструкции INC и DEC - это наиболее эффектив-
ные  инструкции,  с помощью которых можно увеличивать и уменьшать
значения переменных в памяти и регистров. Их следует использовать
там, где это возможно.



                          Умножение и деление
-----------------------------------------------------------------

     Процессор 8086 может выполнять отдельные типы операций умно-
жения и деления. Эта одна из сильных сторон процессора 8086, пос-
кольку во многих микропроцессорах вообще отсутствует  непосредст-
венная поддержка операций умножения и деления, а эти операции до-
вольно сложно выполнить программным путем.

     Инструкция MUL перемножает  8-  или  16-битовые  беззнаковые
сомножители,  создавая  16-  или 32-битовое произведение. Давайте
сначала рассмотрим умножение 8-битовых сомножителей.

     При 8-битовом (8-разрядном) умножении один из операндов дол-
жен  храниться  в регистре AL,  а другой может представлять собой
любой 8-битовый общий регистр или переменную памяти соответствую-
щего размера. Инструкция MUL всегда сохраняет 16-битовое произве-
дение в регистре AX. Например, во фрагменте программы:

           .
           .
           .
           mov   al,25
           mov   dh,40
           mul   dh
           .
           .
           .

AL умножается на DH, а результат (1000) помещается в регистр  AX.
Заметим,  что  в  инструкции  MUL требуется указывать только один
операнд, другой сомножитель всегда храниться в регистре AL (или в
регистре AX в случае перемножения 16-битовых сомножителей).

     Инструкция  перемножения  16-битовых  сомножителей  работает
аналогично.  Один из сомножителей должен храниться в регистре AX,
а другой может находиться в 16-разрядном общем регистре или в пе-
ременной  памяти. 32-битовое произведение инструкция MUL помещает
в этом случае в регистры DX:AX, при этом младшие (менее значащие)
16 битов произведения записываются в регистр AX, а старшие (более
значащие) 16 бит - в регистр DX. Например, инструкции:

           .
           .
           .
           mov   ax,1000
           mul   ax
           .
           .
           .

загружают в регистр AX значение 1000,  а  затем  возводят  его  в
квадрат, помещая результат (значение 1000000) в регистры DX:AX.

     В отличие от сложения и вычитания, в операции  умножения  не
учитывается, являются ли сомножители операндами со знаком или без
знака, поэтому имеется вторая инструкция умножения IMUL для умно-
жения  8-  и 16-битовых сомножителей со знаком. Если не принимать
во внимание, что перемножаются  значения  со  знаком,  инструкция
IMUL работает аналогично инструкции MUL. Например, при выполнении
инструкций:

           .
           .
           .
           mov   al,-2
           mov   ah,10
           imul  ah
           .
           .
           .

в регистре AX будет записано значение -20.

     Процессор 8086 позволяет вам с  определенными  ограничениями
разделить  32-битовое значение на 16-битовое, или 16-битовое зна-
чение  на   8-битовое.   Давайте   сначала   рассмотрим   деление
16-битового значения на 8-битовое.

     При беззнаковом делении 16-битового  значения  на  8-битовое
делимое  должно  быть  записано в регистре AX. 8-битовый делитель





может храниться в любом 8-битовом общем регистре или переменной в памяти соответствующего размера. Инструкция DIV всегда записывает 8-битовое частное в регистр AL, а 8-битовый остаток - в AH. Нап- ример, в результате выполнения инструкций: . . . mov ax,51 mov dl,10 div dl . . . результат 5 (51/10) будет записан в регистр AL, а остаток 1 (ос- таток от деления 51/10) - в регистр AH. Заметим, что частное представляет собой 8-битовое значение. Это означает, что результат деления 16-битового операнда на 8-битовый операнд должен превышать 255. Если частное слишком ве- лико, то генерируется прерывание 0 (прерывания по делению на 0). Инструкции: . . . mov ax,0fffh mov bl,1 div bl . . . генерируют прерывание по делению на 0 (как можно ожидать, преры- вание по делению на 0 генерируется также, если 0 используется в качестве делителя). При делении 32-битового операнда на 16-битовый операнд дели- мое должно записываться в регистрах DX:AX. 16-битовый делитель может находиться в любом из 16-битовых регистров общего назначе- ния или в переменной в памяти соответствующего размера. Например, в результате выполнения инструкций: . . . mov ax,2 mov dx,1 ; загрузить в DX:AX 10002h mov bx,10h div bx . . . частное 1000h (результат деления 10002h на 10h) будет записано в регистре AX, а 2 (остаток от деления) - в регистре DX. Как и при умножении, при делении имеет значение, используют- ся операнды со знаком или без знака. Для деления беззнаковых опе- рандов используется операция DIV, а для деления операндов со зна- ком - IDIV. Например, операции: . . . .DATA TestDivisor DW 100 . . . .CODE . . . mov ax,-667 cwd ; установить DX:AX в значение -667 idiv [TestDivisor] . . . сохраняют значение -6 в регистре AX и значение -67 в регистре DX. Изменение знака ----------------------------------------------------------------- Наконец, мы подошли к рассмотрению инструкции NEG, которая позволяет вам изменить (инвертировать) знак содержимого общего регистра или переменной в памяти. Например, после выполнения инс- трукций: . . . mov ax,1 ; установить регистр AX в значение 1 neg ax ; отрицание AX, он становится ; равным -1 mov bx,ax ; скопировать содержимое AX в BX neg bx ; отрицание BX, он становится равным 1 .


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