移位总是将指定方向的字节移出寄存器.最后一个移位的位移入进位标志(CF
).这些都记录在英特尔移位说明手册中(此页面包含该文档的镜像).
因此,do SHR ah, 1
会将弹出的(最低有效)位移入进位标志,并将新空(最高有效)位设置为0.
仅操作目标寄存器.处理器AH
完全独立地AX
(并因此AL
)处理该操作的目的.虽然这是事实,AL
并AH
给你"视图"上的完整的16位的下部和上部8位AX
的寄存器,如果指定这些8位寄存器作为操作数中的一个的指令时,指令将只操作上部分登记.
也许你在使用旋转操作混淆移位操作?这些仍然独立于所有其他寄存器处理目标寄存器,但它们基本上实现了循环移位,使得从一端移出的位被旋转回到值的另一端.