DE
Dovlet Esenov

Как записать в переменную только несколько битов?

Есть регистр в 32 бита. Из него нужно записать в переменную только первые 8. А еще лучше первые три.
Как это сделать?

И второй вопрос: как сравнить несколько битов сразу?

Есть 3 бита, сравниваем их с константой. Если все совпадают - результат 0, не совпадают - 1(ну можно и наоборот, ! перед условием никто не мешает поставить)

П. С, Как комменты-то включить?

КС
Константинова Светлана

Записать первые 3 бита:
and eax, 11100000000000000000000000000000b
mov [var], eax

Сравнить 0-й, 2-й и 5-й биты:
mov eax, [var]
and eax, 00000000000000000000000000100101b
cmp eax, 00000000000000000000000000100101b
je "метка"

Самал
Самал

ну если мы двоичное число поделим нацело на 2, то у нас как раз будет результатом это число без последней цифры, я бы в эту сторону шел
разрешайте комменты в таких вопросах, обычно бурное обсуждение развивается
ну естественно результат будет типа 00...00*нужные биты*
по поводу сравнения поподробней можно?
ну а где есть-то? если это все в памяти, то там же дискретные ячейки, значит три бита будут выглядеть наподобие 00..00XYZ
так что мешает сравнить их с константой 00..00111 например?
наверное, так
а вот про комменты не скажу, редко вопросы тут создаю, но вроде при создании пункт выбирается

Похожие вопросы
как в С++ записать, что переменная ничего не значит?
как в С++ можно записать вывод переменной int вместе с окончанием типа char переменной пример ниже смотрите
Как записать вывод команды в переменную? (bat-файл)
Как записать содержимое файла в переменную? на C/C++
Как в текст. переменную записать длинный текст в VBA?
мозно ли записать весь массив в одну переменную (С++)
Как в джаве задать переменной несколько значений.
Как записать переменные в текстовый файл? C#, а еще лучше Excel.
VB.NET Как записать " " в строковую переменную String
Как в переменную js записать текст в несколько строк?