Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Логические данные. Логические команды. Команды сдвига. коп операнд, счетчик_сдвиговСодержание книги
Поиск на нашем сайте Логические данные Теоретической базой для логической обработки данных является формальная логика. Исчисление высказываний очень гармонично сочетается с принципами работы компьютера и основными методами его программирования. Все аппаратные компоненты компьютера построены на логических микросхемах. Система представления информации в компьютере на самом нижнем уровне основана на понятии бита. Бит, имея всего два состояния: 0 (ложно) и 1 (истинно), — естественным образом вписывается в исчисление высказываний. Согласно теории, над высказываниями (над битами) могут выполняться следующие логические операции:
Значение операнда Результат операции
Значение операнда 1 Значение операнда 2 Результат операции
Значение операнда 1 Значение операнда 2 Результат операции
Значение операнда 1 Значение операнда 2 Результат операции
Система команд микропроцессора содержит пять команд, поддерживающих данные операции. Эти команды выполняют логические операции над битами операндов. Размерность операндов, естественно, должна быть одинакова. Например, если размерность операндов равна слову (16 бит), то логическая операция выполняется сначала над нулевыми битами операндов и ее результат записывается на место бита 0 результата. Далее команда последовательно повторяет эти действия над всеми битами с первого до пятнадцатого. Возможные варианты размерности операндов для каждой команды приведены в “Справочнике команд”. Логические команды В системе команд микропроцессора есть следующий набор команд, поддерживающих работу с логическими данными: and операнд_1,операнд_2 — операция логического умножения. or операнд_1,операнд_2 — операция логического сложения. xor операнд_1,операнд_2 — операция логического исключающего сложения. test операнд_1,операнд_2 — операция “проверить” (способом логического умножения). not операнд — операция логического отрицания. Для представления роли логических команд в системе команд микропроцессора очень важно понять области их применения и типовые приёмы их использования при программировании.
or eax,10b ;установить 1-й бит в регистре eax
and eax,fffffffdh ;сбросить в 0 1-й бит в регистре eax
xor eax,10b ;инвертировать 1-й бит в регистре eax jz mes ;переход, если 1-й бит в al был единичным
test eax,00000010h jz m1 ;переход, если 4-й бит равен 1
Как видно из примера, для реакции на результат команды test целесообразно использовать команду перехода jnz метка (Jump if Not Zero) — переход, если флаг нуля zf ненулевой, или команду с обратным действием — jz метка (Jump if Zero) — переход, если флаг нуля zf = 0. Следующие две команды позволяют осуществить поиск первого установленного в 1 бита операнда. Поиск можно произвести как с начала так и от конца операнда: bsf операнд_1,операнд_2 (Bit Scaning Forward) - сканирование битов вперёд.
mov al,02h bsf bx,al ;bx=1 jz m1 ;переход, если al=00h ...
bsr операнд_1,операнд_2 (Bit Scaning Reset) — сканирование битов в обратном порядке. В последних моделях микропроцессоров Intel в группе логических команд появилось ещё несколько команд, которые позволяют осуществить доступ к одному конкретному биту операнда. Операнд может находиться как в памяти, так и в регистре общего назначения. Положение бита задаётся смещением бита относительно младшего бита операнда. Значение смещения может задаваться как в виде непосредственного значения, так и содержаться в регистре общего назначения. В качестве значения смещения вы можете использовать результаты работы команд bsr и bsf. Все команды присваивают значение выбранного бита флагу cf. bt операнд,смещение_бита (Bit Test) — проверка бита.
bt ax,5 ;проверить значение бита 5 jnc m1 ;переход, если бит = 0
bts операнд,смещение_бита (Bit Test and Set) — проверка и установка бита.
mov ax,10 bts pole,ax ;проверить и установить 10-й бит в pole jсm1 ;переход, если проверяемый бит был равен 1 btr операнд,смещение_бита (Bit Test and Reset) — проверка и сброс бита. btc операнд,смещение_бита (Bit Test and Convert) — проверка и инвертирование бита. Команды сдвига Команды этой группы также обеспечивают манипуляции над отдельными битами операндов, но иным способом, чем логические команды, рассмотренные выше. Количество сдвигаемых разрядов — счетчик_сдвигов — располагается, как видите, на месте второго операнда и может задаваться двумя способами:
Исходя из размерности регистра cl, понятно, что значение счётчика сдвигов может лежать в диапазоне от 0 до 255. Но на самом деле это не совсем так. Все команды сдвига устанавливают флаг переноса cf. По принципу действия команды сдвига можно разделить на два типа:
|
||
|
Последнее изменение этой страницы: 2024-06-27; просмотров: 52; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.196 (0.007 с.) |