汇编语言shl/shr与sal/sar的使用

移位指令分为逻辑移位指令算术移位指令

  • shl 与 shr 属于逻辑移位指令

shl逻辑左移指令

  • 将寄存器或内存单元的数据左移
  • 最低位用 0 补充
  • 最高位进入 CF

例子:

 mov ax,8fh	;mov ax,1000 1111b
 shl ax,1	;将ax左移一位
 
 执行后 (ax) = 0001 1110b	;1eh
 CF = 1

如果我们需要移动的位数大于1时,需要将移动位数存入 cl
例子:

比如说我们要移动 4 位
mov cl,4
mov ax,9fh	;mov ax,1000 1111b
shl ax,cl	;左移位数为 cl 里的数据

执行后 (ax) = 1111 0000b		;f0h
CF = 1

shr逻辑右移指令

  • 将寄存器或内存单元的数据右移
  • 最低位用 0 补充
  • 最低位进入 CF
  • sal 与 sar 属于算术移位指令

sal 算术左移指令

  • 功能与shl相同

sar 算术右移指令

  • 基本与shr相同
  • 与shr补 0 不同,sar补位时最高位不变
发布了6 篇原创文章 · 获赞 8 · 访问量 852

猜你喜欢

转载自blog.csdn.net/weixin_43853811/article/details/105299569