Сдвиг вправо и сдвиг влево на ассемблере

Если я хочу сказать, например, bx это число:

shl bx,1
shr bx,1

Каким будет новое значение bx? Это остается тем же самым?

1 ответ

Каким будет новое значение bx? Это остается тем же самым?

Нет (или не обязательно). shl bx,1 избавится от самого высокого бита, а shr bx,1 не вернет старый самый высокий бит. Это означает, что значение, подобное 0x8123, станет 0x0123.

В основном это было бы почти так же, как использование and bx,0x7FFF очистить старший бит (за исключением флага переноса).

Другие вопросы по тегам