加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

汇编语言指令 ROL和SHL

(2012-11-26 20:59:03)
标签:

杂谈

分类: c/cpp

循环左移指令:ROL DEST,COUNT

  指令功能:把目的地址中的数据循环左移COUNT次,每次从最高位(最左)移出的数据位都补充到最低位(最右),最后从最高位(最左)移出的数据位保存到CF标志位。

  标志位影响:CF标志用于保存最后从最高位移出的数据位。如果COUNT=1,OF标志有意义,如果移位前后数据的符号位发生了变化,OF=1;如果符号位没有发生变化,OF=0。如果COUNT>1,OF标志不确定(没有意义)。

shl就是逻辑左移,右面补零。

  例如

  mov ax,00010101

  shl ax,1      shl A,count(左移count位)

  ;此时ax=00101010

  现在计算机中的数都是补码表示,shl就相当于乘二

  =求和(2^i),左移就相当于幂值加一,即求和(2^(i+1))=2*求和(2^i)

  例如 mov ax,00010101 ;21

  shl ax,1 ;ax=00101010 ;42

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有