В числе x поменять пары двоичных разрядов в зеркальном порядке - Assembler

Узнай цену своей работы

Формулировка задачи:

Например 01 11 11 10 10, должно получиться 10 10 11 11 01.

Решение задачи: «В числе x поменять пары двоичных разрядов в зеркальном порядке»

textual
Листинг программы
  1.     mov dx,x
  2.     xor bx,bx
  3. @@01:   mov ax,dx
  4.     and ax,3
  5.     shl bx,2
  6.     or  bx,ax
  7.     shr dx,2
  8.     or  dx,dx
  9.     jnz @@01

Объяснение кода листинга программы

  1. mov dx,x — в регистр dx записывается значение переменной x
  2. xor bx,bx — в регистр bx записывается ноль (начальное значение без знака)
  3. mov ax,dx — в регистр ax записывается значение из регистра dx
  4. and ax,3 - логическое И с тремя единицами (00000011) в регистре ax
  5. shl bx,2 - содержимое регистра bx сдвигается влево на два разряда с сохранением знака (удвоение значения)
  6. or bx,ax — результат операции (0x11) или'руется' с регистром ax
  7. shr dx,2 - содержимое регистра dx сдвигается вправо на два разряда с сохранением знака (уменьшение значения на два)
  8. or dx,dx — результат операции (0x11) или'руется' с регистром dx
  9. jnz @@01 - если значение в регистре dx не равно нулю, то происходит переход к метке @@01

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.571 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы