Домашнее задание для ПО 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.
Для реализации нашей задачи предлагаю обратить внимание на БЕЗЗНАКОВЫЙ сдвиг
Скачать:
Вложение | Размер |
---|---|
assembler-labs.pdf | 565.63 КБ |
Предварительный просмотр:
По теме: методические разработки, презентации и конспекты
Домашнее задание для ПО 2.11 по учебной практике УП01 от 14.11.20
выполнить задание...
Домашнее задание для ПО 2.11 по учебной практике УП02 от 21.11.20
создать базу данных...
Домашнее задание для ПО 2.11 по учебной практике УП01 от 28.11.20
И так ынимательно читаем задание: из него видно, что в проекте должно быть три файла: FromScale.cpp, Scale.h, Scale.cpp.Первый из них основной файл, в нем будут вызываться все функции и заголовочные ф...
Домашнее задание для ПО 2.11 по учебной практике УП02 от 05.12.20
Сегодня создаем таблицы...
Домашнее задание для ПО 2.11 по учебной практике УП02 от 22.03.21
Продолжаем создавать базу строителей:Создайте запрос ЗаказанныеМатериалы, предоставляющий информацию о бригадире и заказанных материалах.Создайте запрос ОтработкаДо100, позволяющий осуществить выборку...
Домашнее задание для ПО 2.11 по учебной практике УП01 от 29.03.21
В данном задании необходимо добится чтобы правильно отражалось отрицательное значение...
Домашнее задание для ПО 2.11 по учебной практике УП01 от 13.04.21
Как мы знаем в двухзначном виде не бывает точки как разделителя целой и дробной части. В частности если мы рассматриваем двоичное число не с математической точки зрения, а как компьютерного кода.Плэто...