macro _get_bit_8b src,tmp,bit {
mov tmp,src
shr tmp,bit
lahf
shl ah,7
shr ah,7
shr ax,1
}
macro _xchg_1_3_bits_8b src,tmp {
_get_bit_8b src,tmp,3
_get_bit_8b src,tmp,2
_get_bit_8b src,tmp,1
_get_bit_8b src,tmp,4
_get_bit_8b src,tmp,5
_get_bit_8b src,tmp,6
_get_bit_8b src,tmp,7
_get_bit_8b src,tmp,8
}
mov dx,0xabfe ; dx <- input
_xchg_1_3_bits_8b dl,cl
mov ah,dh ; ax -> output
Сдвиг битов
Как поменять эти биты..
используя команды shl и shr///
или как..помогите с кодом..
bt,bts,btr,btc - флаг CF = значению бита + варианты (ничего , установка , сброс , инверсия) .
Видимо,ТС не зря указал,что использовать надо только ShR/ShL.Правда,тогда у меня идей нет:confused:
Код:
хотя мой способ извращенский)))
про простой я только сейчас прочитал, даже не подумал о нем))
взято с другого форума:
Код:
mov dx, ax
shr dx, 2
and dx, 10b
mov cx, ax
shl cx, 2
and cx, 1000b
or dx, cx
and ax, not 1010b
or ax, dx
shr dx, 2
and dx, 10b
mov cx, ax
shl cx, 2
and cx, 1000b
or dx, cx
and ax, not 1010b
or ax, dx