导读: 逻辑移位(不管是左移位还是右移位) 都是空缺处补0 例如: mov ax , 1100_0111_0110_1000B mov cl , 3 shl ax , cl ; 结果 ax = 0011_1011_0100_0000 mov ax , 1100_0111_0110_1000B mov cl , 3 shr ax , cl ; 结果 ax = 0001_1000_1110_1101 算术移位要保证符号位的不改变(逻辑左移位补0, 逻辑右移位看符号位) 例如: mov ax , 1100_0111_0110_1000B mov cl , 3 sal ax , cl ; 结果 ax = 0011_1011_0100_0000 mov ax , 1100_0111_0110_1000B mov cl , 3 sar ax , cl ; 结果 ax = 1111_1000_1110_1101 mov ax , 0100_0111_0110_1000B mov cl , 3 sar ax , cl ; 结果 ax = 0000_1000_1110_1101 本文转自 http://topic.csdn.net/t/20051123/00/4411562.html
http://blog.csdn.net/xautfengzi