Домашнее задание для ПО 2.11 по учебной практике УП01 от 27.04.21
учебно-методический материал

Склемин Алексей Анатольевич

Команды сдвига При выполнении команд сдвига флаг CF всегда содержит значение последнего выдвинутого бита. Существуют следующие команды cдвига: SHR ;Логический (беззнаковый) сдвиг вправо SHL ;Логический (беззнаковый) сдвиг влево SAR ;Арифметический сдвиг вправо SAL ;Арифметический сдвиг влево Следующий фрагмент иллюстрирует выполнение команды SHR: Mov cl,03 ; AX: Mov ax,10110111B ; 10110111 Shr ax,1 ; 01011011 ;Сдвиг вправо на 1 Shr ax,cl ; 00001011 ;Сдвиг вправо на 3 Первая команда SHR сдвигает содержимое регистра AX вправо на 1 бит. Выдвинутый в результате один бит попадает в флаг CF, а самый левый бит регистра AX заполняется нулем. Вторая команда cдвигает содержимое регистра15 AX еще на три бита. При этом флаг CF последовательно принимает значения 1, 1, 0, а в три левых бита в регистре AX заносятся нули. Рассмотрим действие команд арифметического вправо SAR: Mov cl,03 ; AX: Mov ax,10110111B ; 10110111 Sar ax,1 ; 11011011 ;Сдвиг вправо на 1 Sar ax,cl ; 11111011 ;Сдвиг вправо на 3 Команда SAR имеет важное отличие от команды SHR: для заполнения левого бита используется знаковый бит. Таким образом, положительные и отрицательные величины сохраняют свой знак. В приведенном примере знаковый бит содержит единицу. При сдвигах влево правые биты заполняются нулями. Таким обpазом, результат команд сдвига SHL и SAL индентичен. Сдвиг влево часто используется для удваивания чисел, а сдвиг вправо - для деления на 2. Эти операции осуществляются значительно быстрее, чем команды умножения или деления. Деление пополам нечетных чисел (например, 5 или 7) образует меньшие значения (2 или 3, соответственно) и устанавливают флаг CF в 1. Кроме того, если необходимо выполнить сдвиг на 2 бита, то использование двух команд сдвига более эффективно, чем использование одной команды с загрузкой регистра CL значением 2.

 

Для реализации нашей задачи предлагаю обратить внимание на БЕЗЗНАКОВЫЙ сдвиг

Скачать:

ВложениеРазмер
PDF icon assembler-labs.pdf565.63 КБ

Предварительный просмотр:

По теме: методические разработки, презентации и конспекты

Домашнее задание для ПО 2.11 по учебной практике УП01 от 28.11.20

И так ынимательно читаем задание: из него видно, что в проекте должно быть три файла: FromScale.cpp, Scale.h, Scale.cpp.Первый из них основной файл, в нем будут вызываться все функции и заголовочные ф...

Домашнее задание для ПО 2.11 по учебной практике УП02 от 22.03.21

Продолжаем создавать базу строителей:Создайте запрос ЗаказанныеМатериалы, предоставляющий информацию о бригадире и заказанных материалах.Создайте запрос ОтработкаДо100, позволяющий осуществить выборку...

Домашнее задание для ПО 2.11 по учебной практике УП01 от 29.03.21

В данном задании необходимо добится чтобы правильно отражалось отрицательное значение...

Домашнее задание для ПО 2.11 по учебной практике УП01 от 13.04.21

Как мы знаем в двухзначном виде не бывает точки как разделителя целой и дробной части. В частности если мы рассматриваем двоичное число не с математической точки зрения, а как компьютерного кода.Плэто...