Skip to content

[ЭКЗАМЕН 24] Команды сдвига.

Justarone edited this page Jun 9, 2020 · 5 revisions

Логический, арифметический, циклический сдвиг. SAR, SAL, SHR, SHL, ROR, ROL, RCR, RCL

SAR <операнд>, 1

SAR <операнд>, CL

SHR <операнд>, 1

SHR <операнд>, CL

Команды сдвига вправо SAR и SHR сдвигают все биты вниз (к младшему), а самый младший бит переносится во флаг CF. Команда SAR фактически выполняет знаковое деление на два, четыре и т.д. с округлением в сторону -∞(не тоже самое, что команда IDIV), старший бит исходного опернада остается неизменным, а его значение копируется при сдвиге в менее значимые биты. Команда SHR выполняет беззнаковое деление, старшие биты при сдвиге заполняются нулями.

SAL <операнд>, 1

SAL <операнд>, CL

SHL <операнд>, 1

SHL <операнд>, CL

Команды сдвига влево SAL и SHL идентичны, они сдвигают все биты вверх (к старшему), при этом самый старший бит операнда-источника сдвигается во флаг CF. Такое действие равнозначно беззнаковому умножению исходного операнда на два, четыре и т.д, младшие биты заполняются нулями.

ROR <операнд>, 1

ROR <операнд>, CL

Циклический сдвиг вправо, флаг CF получает копию сдвинутого бита.

ROL <операнд>, 1

ROL <операнд>, CL

Циклический сдвиг влево, флаг CF получает копию сдвинутого бита.

RCR <операнд>, 1

RCR <операнд>, CL

Циклический сдвиг вправо через флаг CF, сдвинутый бит помещается в CF, вместо него в число с другой стороны добавляется значение CF.

RCL <операнд>, 1

RCL <операнд>, CL

Циклический сдвиг влево через флаг CF, сдвинутый бит помещается в CF, вместо него в число с другой стороны добавляется значение CF.

Следующий вопрос: Команда организации цикла.

Предыдущий вопрос: Команды десятичной арифметики.

Экзамен:

  1. Архитектура фон Неймана. Принципы фон Неймана

  2. Структурная схема ЭВМ. Виды памяти. Системная шина.

  3. Процессор 8086. Разрядность. Регистры.

  4. Процессор 8086. Регистр флагов.

  5. Процессор 8086. Шина адреса. Сегментная модель памяти.

  6. Выполнение программы. Машинный код. Исполняемые файлы. Язык ассемблера.

  7. Классификация команд процессора x86.

  8. Команда пересылки данных.

  9. Команды целочисленной арифметики.

  10. Команды побитовой арифметики.

  11. Команды передачи управления.

  12. Структура программы на языке ассемблера. Модули. Сегменты.

  13. Директивы выделения памяти. Метки.

  14. Директива SEGMENT.

  15. Директива ASSUME.

  16. Директива END. Точка входа.

  17. Виды переходов. Условные, безусловные переходы. Короткий, ближний, дальний переход.

  18. Способы адресации.

  19. Команда сравнения.

  20. Команды условных переходов.

  21. Команда XLAT/XLATB.

  22. Команда LEA.

  23. Команды десятичной арифметики.

  24. Команды сдвига.

  25. Команда организации цикла.

  26. Строковые операции. Префиксы повторения.

  27. Стек. Регистры, связанные со стеком. Команды записи/извлечения из стека.

  28. Стек. Использование при вызове подпрограмм. Команды вызоваподпрограммы и возврата.

  29. Прерывания. Назначение, виды прерываний. Таблица векторов прерываний.

  30. Срабатывание прерывания. Обработчик прерывания в реальном режиме. Возврат из обработчика прерывания.

  31. Процессор 80386. Разрядность, регистры.

  32. Защищённый режим работы процессора. Многозадачность.

  33. Модели памяти в защищённом режиме. Регистры управления памятью. Страничное преобразование.

  34. Процессоры x86-64. Регистры. Режимы работы.

  35. Математический сопроцессор. Типы данных. Представление вещественных чисел.

  36. Математический сопроцессор. Регистры.

  37. Математический сопроцессор. Особые числа.

  38. Математический сопроцессор. Классификация команд.

  39. Расширение MMX. Назначение. Типы данных.

  40. Расширение MMX. Регистры. Классификация команд.

  41. Расширение SSE. Назначение. Типы данных. Регистры.

  42. Макроопределения. Назначение.

  43. Макроопределения. Директивы присваивания и отождествления.

  44. Макроопределения. Макрооперации.

  45. Макроопределения. Блоки повторения.

  46. Макроопределения. Директивы условного ассемблирования.

Clone this wiki locally