【asm基础】汇编指令之移位指令

灰太狼 2023-10-16 22:55 212阅读 0赞

SHL

逻辑左移。
























OF

DF

IF

SF

ZF

AF

PF

CF

*

说明:将目的操作数的每位左移,使用源操作数决定要移位的数目。最高位复制到进位标志中,最低位以0填充(与SAL相同)。在使用8086/8088处理器时,imm8操作数必须是1。

指令格式:

  1. shl reg, imm8
  2. shl mem, imm8
  3. shl reg, cl
  4. shl mem, cl

SHR

逻辑右移。
























OF

DF

IF

SF

ZF

AF

PF

CF

*

说明:将目的操作数的每位右移,使用源操作数决定要移位的数目。最低位复制到进位标志中,最高位以0填充(与SAR不同)。在使用8086/8088处理器时,imm8操作数必须是1。

指令格式:

  1. shr reg, imm8
  2. shr mem, imm8
  3. shr reg, cl
  4. shr mem, cl

SAL

算数左移。
























OF

DF

IF

SF

ZF

AF

PF

CF

*

说明:目的操作数中的每一位左移,源操作数决定移位数目。最高位复制到进位标志中,最低位以0填充。使用8086/8088处理器时,imm8操作数必须是1。

指令格式:

  1. sal reg, imm8
  2. sal mem, imm8
  3. sal reg, cl
  4. sal mem, cl

SAR

算数右移。
























OF

DF

IF

SF

ZF

AF

PF

CF

*

说明:目的操作数中的每一位右移,源操作数决定移位数目。最低位复制到进位标志中,最高位保持原值。SAR指令通常用于有符号数操作,因为它保留了符号位的值。使用8086/8088处理器时,imm8操作数必须是1。

指令格式:

  1. sar reg, imm8
  2. sar mem, imm8
  3. sar reg, cl
  4. sar mem, cl

ROL

循环左移。
























OF

DF

IF

SF

ZF

AF

PF

CF

说明:目的操作数循环左移,源操作数决定移位的数目。最高位复制到进位标志并同时送至最低位中。使用8086/8088处理器时,imm8操作数必须是1。

指令格式:

  1. rol reg, imm8
  2. rol mem, imm8
  3. rol reg, cl
  4. rol mem, cl

ROR

循环右移。
























OF

DF

IF

SF

ZF

AF

PF

CF

说明:目的操作数循环右移,源操作数决定移位的数目。最低位复制到进位标志并同时送至最高位中。使用8086/8088处理器时,imm8操作数必须是1。

指令格式:

  1. ror reg, imm8
  2. ror mem, imm8
  3. ror reg, cl
  4. ror mem, cl

RCL

带进位循环左移。
























OF

DF

IF

SF

ZF

AF

PF

CF

说明:目的操作数循环左移,源操作数决定移位的数量。进位的值复制到最低位,最高位送进进位标志中。使用8086/8088处理器时,imm8操作数必须是1。

指令格式:

  1. rcl reg, imm8
  2. rcl mem, imm8
  3. rcl reg, cl
  4. rcl mem, cl

RCR

带进位循环右移。
























OF

DF

IF

SF

ZF

AF

PF

CF

说明:目的操作数循环右移,源操作数决定移位的数量。进位的值复制到最高位,最低位送进进位标志中。使用8086/8088处理器时,imm8操作数必须是1。

指令格式:

  1. rcr reg, imm8
  2. rcr mem, imm8
  3. rcr reg, cl
  4. rcr mem, cl

发表评论

表情:
评论列表 (有 0 条评论,212人围观)

还没有评论,来说两句吧...

相关阅读