汇编语⾔-移位指令
基本概念
移位操作指令:移位操作指令是⼀组经常使⽤的指令,属于汇编语⾔逻辑指令中的⼀部分,它包括移位指令(含算术移位指令、逻辑移位指令),循环移位指令(含带进位的循环移位指令),双精度移位指令三⼤类。其功能为将⽬的操作数的所有位按操作符规定的⽅式移动1位或按寄存器CL规定的次数(0~255)移动,结果送⼊⽬的地址。⽬的操作数是8位(或16位)的寄存器数据或存储器数据。
基本格式
汇编语言结束指令格式为:xxx oper1,CL/1
移位次数只能是1或者存放在CL⾥⾯。
移位指令
⼀、算术移位指令
1、算术左移指令SAL
功能:左移⼀次,最低位补0,最⾼位送⼊CF标志位,如图:
意义:左移n次,等于x2的n次幂。所以可⽤于有符号操作数做x2的n次幂运算。
2、算术右移指令SAR
功能:右移⼀次,最⾼位保持不变,最低位送⼊CF标志位,如图:
意义:右移n次,等于/2的n次幂。所以可⽤于有符号操作数做/2的n次幂运算。
⼆、逻辑移位指令
1、逻辑左移指令SHL
功能:同SAL,如图:
意义:同SAL
2、逻辑右移指令SHR
功能:右移⼀次,最⾼位补0.区别!最低位送⼊CF标志位。如图:
意义:⽤于实现⽆符号数/2的n次幂操作。
三、循环移位指令
1、循环左移指令ROL
功能:左移⼀次,左移前的最⾼位送⼊最低位以及CF.如图:
2、循环右移指令ROR
功能:右移⼀次,右移前的最低位送⼊最⾼位以及CF.如图:
3、带进位的循环左移指令RCL
功能:左移⼀次,左移前的最⾼位送⼊CF,CF的内容送⼊最低位.如图:
4、带进位的循环右移指令RCR
功能:右移⼀次,右移前的最低位送⼊CF,CF的内容送⼊最⾼位.如图:
四、双精度移位指令
1、双精度左移指令SHLD
2、双精度右移指令SHRD
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论