Получить 3 разряд числа, asm вставка в С++ - Assembler

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

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

В цикле для команды 4 реализуйте ввод числа и вывод его третьего двоичного разряда. Для выполнения следует использовать операторы ассемблера OR и AND. Возможно, в качестве второго операнда придется передавать двоичное число 00000100B.
case 4:{
    int a = 3, c;
    _asm
    {
       mov eax, a
       and eax, 00000100B
       mov c, eax
    }
    std::cout << c << std::endl;
    break;
}
В общем, не очень понятно как получить 3 разряд( как вернуть только его ), как перевести из 10с.с в 2с.с.

Решение задачи: «Получить 3 разряд числа, asm вставка в С++»

textual
Листинг программы
       mov eax, a
       and eax, 00000100B
       shr eax, 2
       mov c, eax

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

  1. mov eax, a - переводит значение переменной a в регистр eax
  2. and eax, 00000100B - выполняет побитовое И с битами 00000100B (что эквивалентно числу 100 в двоичной системе счисления) и значением регистра eax
  3. shr eax, 2 - выполняет побитовый сдвиг вправо на 2 позиции числа, хранящегося в регистре eax
  4. mov c, eax - переводит значение регистра eax в переменную c

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


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

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

7   голосов , оценка 3.857 из 5
Похожие ответы