Получить 3 разряд числа, asm вставка в С++ - Assembler
Формулировка задачи:
В цикле для команды 4 реализуйте ввод числа и вывод его третьего двоичного разряда. Для выполнения следует использовать операторы ассемблера OR и AND.
Возможно, в качестве второго операнда придется передавать двоичное число 00000100B.
В общем, не очень понятно как получить 3 разряд( как вернуть только его ), как перевести из 10с.с в 2с.с.
case 4:{ int a = 3, c; _asm { mov eax, a and eax, 00000100B mov c, eax } std::cout << c << std::endl; break; }
Решение задачи: «Получить 3 разряд числа, asm вставка в С++»
textual
Листинг программы
mov eax, a and eax, 00000100B shr eax, 2 mov c, eax
Объяснение кода листинга программы
- mov eax, a - переводит значение переменной
a
в регистр eax - and eax, 00000100B - выполняет побитовое И с битами 00000100B (что эквивалентно числу 100 в двоичной системе счисления) и значением регистра eax
- shr eax, 2 - выполняет побитовый сдвиг вправо на 2 позиции числа, хранящегося в регистре eax
- mov c, eax - переводит значение регистра eax в переменную
c
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д