Amiga. Вычислительная техника
Меню сайта
Главная
Amiga
Amiga Corporation
Модельный ряд
История развития
Аппаратная платформа
Операционные системы
Эмуляция
AMIGA # 1
Программирование на Ассемблере
Организация процессоров
Методы защиты информации
Компьютерные новеллы
Боятся ли компьютеры адского пламени?
Виртуальная реальность
Корпоративные сети
Телекоммуникационные сети
Архитектура ЭВМ
ЕС ЭВМ
Рождение ЭВМ
Компьютер
Гарвардская архитектура
Современные высокопроизводительные компьютеры
Дорога в будущее
Vista
Инфоpматика
ЭВМ
Операционные системы
Linux
Windows
Освой компьютер
Макинтош
Набор текста
Поколения
Компьютерная грамотность
Устройство компьютера
Железо
Графика
Звук
Ремонт
Сети
Программирование
Информационные технологии
Криптография
Микроэлектроника
Истории
 
 

Программирование на Ассемблере



Итак, с помощью команд сдвига можно умножать числа на степени двойки.
При этом сдвиги выполняются значительно быстрее, чем команды деления и
умножения (DIVx и MULx).
Теперь поясним, зачем нужно столько модификаций команд сдвига (ASR, LSR
итд.). Прежде всего рассмотрим отличие сдвига от прокрутки.
При логическом сдвиге операнда к нему справа или слева добавляется нулевой
бит, в то время как при прокрутке добавится бит, \"вытолкнутый\" за разрядную
сетку. Таким образом, прокрутка (ее часто называют циклическим сдвигом)
обеспечивает сохранение всех битов слова (байта): то, что \"выталкивается\"
с одной стороны, добавляется с другой. Такая прокрутка реализуется
командами ROR и ROL. Команды ROXR и ROXL работают несколько по другому:
то, что \"выталкивается\" за разрядную сетку, попадает в X-флаг (см. описание
регистра SR), а старое его содержимое добавляется с другой стороны операнда
(происходит прокрутка через X-флаг, который играет роль дополнительного
бита сдвигаемого слова (байта)).
Более наглядно схему работы сдвигов и прокруток можно представить так:
LSR: 0 ---> ОПЕРАНД ---> C,X
ROR: .----> ОПЕРАНД ---> C,X

| |

`--------<---------\'
ROXR: .----> ОПЕРАHД ---> C,X >-.

| |

`------------<------------\'
Сдвиги в свою очередь делятся на арифметические и логические. В случае
логического сдвига, к слову (байту) всегда добавляется нулевой бит, а
выдвинутый с другой стороны бит записывается в C и X-флаги. Арифметические
сдвиги позволяют выполнять умножение/деление операнда на 2^n с учетом
знака. Так, команда ASR не трогает старший бит сдвигаемого операнда,
сохраняя таким образом знак результата, а команда ASL полностью аналогична
команде LSL:
ASR: .----> ОПЕРАНД ---> C,X

| |

`------\'
ASL,LSL: C,X <--- ОПЕРАНД <--- 0

 

 

© 2010 Amigo. All Rights Reserved
Создание сайтов ЕкатеринбургШаблоны сайтовПоиск товаров - справочник цен, каталог магазинов, прайс-листыБесплатные шаблоны дизайна компьютерных сайтов
Hosted by uCoz