x86 И инструкция

В 64-битной версии x86 у меня есть следующая инструкция:

and $0xf, %eax

Содержимое %eax до и после остается 4. Как это возможно? Выполнение И 100 & 1111 должно привести к 1100, что равно 12, а не 4.


person darksky    schedule 26.01.2012    source источник
comment
Объединение 100 и 1111 должно привести к 1100 Нет, это должно привести к 100. Что инструкция вычисляет, значит все хорошо.   -  person Pascal Cuoq    schedule 27.01.2012
comment
Возможно, вы имели в виду add, а не and.   -  person S.S. Anne    schedule 26.04.2019


Ответы (3)


С каких это пор 0100 & 1111 = 1100?

  0100 = 4
& 1111 = 15
------
  0100 = 4
person Ry-♦    schedule 26.01.2012

Думайте о 100 как о 0100, и вы увидите, что 0100 & 1111 это явно 0100.

person Nick Garvey    schedule 26.01.2012

Нет - вы ошибаетесь. 100 и 1111 = 100.

person Carl Norum    schedule 26.01.2012