Упаковать битовые группы
__asm {
// Очистить старшие биты в каждом исходном числе
and kop_a, 0x1f // 5 bit
and mod1_a, 0x3fff // 14 bit
and reg1_a, 0x3f // 6 bit
and dst_a, 0x7f // 7 bit
xor eax, eax
// объединить поле kop с value
or al, kop_a
shl eax, 14
// объединить поле mod с value
or ax, mod1_a
shl eax, 6
// объединить поле reg с value
or ax, reg1_a // operand size conflict
shl eax, 7
// объединить поле scale с value
or al, dst_a
mov value_a, eax
}
Делать упаковку в более длинную ячейку?
А почему "operand size conflict"?
проверьте размер операнда "reg1_a " скорее всего он обьявлен 32 бит шириной или 8 бит
Как вариант: компиляция из-за этого не прошла, а экзешник от предыдущего варианта остался ))
Кстати частая причина, когда результат компиляции ставит в тупик!
Обсуждают сегодня