Я хочу извлечь 17-й бит из своего 32-битного (int) значения. Правильно ли я это делаю? Я использую синтаксис AT & T.Сборка - извлечь конкретный бит
movl $0x11112222,%eax
movb $0b01000000,%bl
andb %ah,%bl
Я поместил 32-битное число в регистр 32 бит. Теперь 17-й бит находится в регистре ah (как и другие 16-23 бит). Теперь, поскольку это второй бит в регистре ah, я создал «маску». Затем я делаю и работаю. Я думаю об этом?
Уверенный, что вы есть. Но вещь '% ah' будет изменена. Таким образом, если вы хотите, чтобы значение не изменилось, вы должны использовать 'test'. –