Содержание книги
Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Команди операцій з двійковими ланцюжками
В мікропроцесорі 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 с.) |