这个,我只知道两种
一种是手动移位,直接操作寄存器
汇编命令
LSL 逻辑左移
ASL 算术左移
LSR 逻辑右移
ASR 算术右移
ROR 循环右移
RRX 带扩展的循环右移
比如用汇编操作R0寄存器 R0 LSL #1 就是把R0内容左移一位,右补零
还有一种寄存器是用内部电路设计出来的,比如把触发器串接构成移位电路,例如串口收发数据时,我们把32位数据扔进芯片的缓冲区,缓冲区内部就是通过移位寄存器收发数据,到来一个时钟信号他就移位一次,把已经发送出去的那个数据移走(可能直接丢掉也可能重新移到队首,要看电路怎么接的),这个过程我们是看不到的也不能手动干预,如果你学过数电就容易理解这个过程了。
不知道是不是解决了你的问题