将值移动到二进制数中的某个点

Shift value to some point in binary number

不知是否可以做到以下几点
例如,我有一个数字 00001110。我将它向左移动。 -> 00011100....
但问题是是否可以从第六位而不是第七位开始设置进位标志的值。有一个命令 - ROL 它将第七位移入 C 标志,然后将此值存储在零位中。
但我需要这样做,但不要对第七位做任何事情,并将第六位存储在 C 标志中,然后将其存储在零位中。我的意思是,当值为 01110000 时,下一个值应为 01100001。
是否可以这样做。如果有任何帮助,我将不胜感激。

Instruction  Carry  Reg value
-----------  -----  ---------
PUSH           x    01110000
ROL            0    1110000x
ROL            1    110000x0    b6 now in carry
POP            1    01110000
ROL            0    11100001    b6 now to b0
AND Fh       x    01100001

上面的答案不保留 b7,而是将其清除。这保留了 b7.

MOV     r1,r0       ;copy r0
ROL     r0
ROL     r0          ;b6 in Carry
MOV     r0,r1       ;restore r0
ROL     r0          ;shift in original b6 to b0
ROL     r0          ;replace b7 in r0 with b7 in r1
ROL     r1
ROR     r0