Содержание книги

  1. Програмна модель процесора. Опис набору регістрів процесора типу Intel. Регістри користувача
  2. Організація оперативної пам’яті. Сегментована модель оперативної пам’яті. Формування адреси в реальному режимі
  3. Формати і типи даних. Формат машинних команд. Система переривань
  4. Десяткова арифметика. Форми зображення десяткових чисел
  5. Директиви сегментації. Директиви proc і endp
  6. Синтаксис команд мовою асемблера
  7. Передачі адресних об’єктів, команди введення-виведення і передачі прапорців
  8. Команди додавання, віднімання і порівняння
  9. Команди логічних операцій. Команди зсувів
  10. Команди операцій з двійковими ланцюжками
  11. Команди умовних переходів і команди керування циклами
  12. Використання префіксів в ланцюжкових командах.
  13. Команди введення/виведення ланцюжків.
  14. Параметри для трьох форматів в таблиці
  15. Слово стану SW і слово керування CW пристрою FPU.
  16. Команди передач даних FPU: завантаження, збереження, збереження з вибором зі стека, обміну, завантаження сталих.
  17. Додаткові арифметичні команди FPU.
  18. Команди керування пристроєм FPU
  19. Спеціальні числові значення та особливі обчислювальні ситуації


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Команди операцій з двійковими ланцюжками



В мікропроцесорі i486 введено дві підгрупи ефективних команд для роботи з двійковими ланцюжками (bit string). Ці типи даних широко використовуються в комп’ютерній графіці, для табличного подання секторів дискового простору і т.п.

Команда перевірки біта bt (bit test) вибирає певний біт у двійковому ланцюжку і передає його в прапорець перенесення cf. Подібні до неї команди перевірки та інвертування біта btc (bit test and complement), перевірки й установлення біта в 1 bts (bit test and set), перевірки й установлення біта в нуль btr (bit test and reset). Тому надалі говоритимемо про узагальнену команду

btX dst, index,

де , dst – задає двійковий ланцюжок в оперативній пам’яті або загальному регістрі, index – вибирає конкретний біт у ланцюжку. Припустимі форми

btX reg/mem16, reg16, btX reg/mem16, imm8,

btX reg/mem32, reg32, btX reg/mem32, imm8.

Отже, dst визначає слово або подвійне слово в регістрі або в комірці оперативної пам’яті, а значення index знаходиться в регістрі або задається як безпосередній операнд. Діапазон для imm8 від 0 до 15 або 31 (тобто безпосереднє значення тільки восьми бітове і береться за модулем 16 або 32 в залежності від вибраного типу сегмента use16 або use32).

Якщо ланцюжок знаходиться в регістрі, то виконання команди зводиться до вибору відповідного біта з регістра, запису його значення в прапорець cf і, якщо це команда:

bt – завершити її виконання;

btc – знайдений біт інвертувати та завершити її виконання;

bts – знайдений біт установити в 1 та завершити її виконання;

btr – знайдений біт установити в 0 та завершити її виконання.

Якщо ланцюжок знаходиться в оперативній пам’яті, то нумерація бітів здійснюється відносно біта з номером 0 (нуль) – наймолодший біт байта з ефективною адресою EA (визначається операндом mem16 або mem32) команди btX. Старші біти мають додатні номери, а молодші – від’ємні. Номер шуканого біта (значення index в регістрі reg16 або reg32) вважається знаковим цілим числом, яке змінюється від до (use16) або від до (use32). При доступі до оперативної пам’яті процесор визначає адресу слова (use16) або подвійного слова (use32), в якому знаходиться шуканий біт з номером index. Тобто, звертається до двох байтів (use16) за адресою

EA+(2*(BitOffset DIV 16),

або до чотирьох байтів (use32) відповідно за адресою

EA+(4*(BitOffset DIV 32),

де EA (ефективна адреса ланцюжка) – визначається операндом dst (mem16 або mem32); BitOffset – значення операнда index (тобто вміст регістра reg16 або reg32); DIV – операція ділення (a DIV b – ціла частина від ділення a на b із заокругленням до . Далі, визначається номер біта у знайденому слові або подвійному слові, якщо , то відповідно так:

Якщо ж , то відповідно так:

Тут – означає операцію знаходження остачі від ділення першого операнда за модулем другого.



Поделиться:


Последнее изменение этой страницы: 2017-01-27; просмотров: 286; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.139.67.5 (0.004 с.)