Assembly 移位操作.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Assembly 移位操作

Assembly 移位操作 汇编语⾔允许程序员对数据的单个⽐特位进⾏操作。⼀个最常见的的位操作称为移 位。移位操作移动 ⼀个数据的⽐特位的位置。移位可以是向左移(也就是:向最⾼有 效位移动) ,也可以向右移(最低有效位) 。 逻辑移位 逻辑移位是移位中最简单的类型。它以⼀种最直接的⽅式进⾏移位操作。图3.1展⽰了 ⼀个字节的移位操作的例⼦。 注意:新进来的⽐特位总是为0 。SHL 和SHR 指令分别⽤来执⾏逻辑左移和逻辑右 移。这些指令允许你移动任意的位数。位数可以是⼀个常量,也可以是储存在CL寄存 器的值。最后从数据中移出的⽐特位储存在进位标志位中。这有⼀些代码例⼦: 移位的应⽤ 快速的乘法和除法是移位操作最普遍的应⽤。回忆在⼗进制系统中,乘以和除以10 的 ⼏次⽅是⾮常简单的,只是移动位⽽已。在⼆进制中,乘以和除以2的⼏次⽅也是⼀ 样的。例如:要得到⼆进制数10 112(或⼗进制11)的两倍,只需向左移动⼀位,得到 10 1102 (或22) 。⼀个除以2的⼏次⽅的除法的商相当于⼀个右移操作的结果。仅仅是 除以2 ,向右移动⼀位;除以4(22),向右移动2位;除以8(23 ,向右移动3位,等等。移 位指令⾮常基础⽽且⽐功能相同的MUL 和DIV 指令执⾏要快得多 ! 实际上,逻辑移位只可以⽤于⽆符号数的乘法和除法。⼀般它们不能应⽤于有符号 数。考虑两个字节的数值FFFF(有符号时为¡1) 。如果它向右逻辑移动⼀位,结果是 7FFF ,也就是+32; 767 !另⼀种类型的移位操作可以⽤在有符号数上。 算术移位 这些移位操作是为允许有符号数能快速地执⾏乘以和除以2的⼏次⽅的操作⽽设计 的。它们保证符号位能被正确对待。 SAL 算术左移(Shif Ari hme ic Lef ) - 这条指令只是SHL 的同义词。它实际上被编译成 与SHL⼀样的机器代码。只要符号位没有因移位⽽改变,结果就将是正确的。 SAR 算术右移(Shif Ari hme ic Righ ) - 这是⼀条新的指令,它不会移动操作数的符号 位(也就是: 最⾼有效位) 。其它位被正常移动,除了从左边新进来的位通过复制符号 位(也就是说,如果符号位为1,那么新的位值也同样为1)得到外。因此,如果⼀个字节 使⽤这条指令来移位,只有低7位会被移动。就像其它移位指令⼀样,最后移出的位 储存在进位标志位中。 循环移位 循环移位指令像逻辑指令⼀样运作,除了把从数据的⼀端移出的⽐特位又移⼊到另⼀ 端外。因此,数据好像被当作⼀个循环结构体⼀样对待。ROL和ROR 是两个最简单的 循环移位指令,它们分别执⾏左移和右移操作。就像其它移位指令⼀样,这些移位指 令把循环移出的最后⼀个⽐特位复制到进位标志位中。 有两个额外的循环指令⽤来在数据和进位标志位之间移动⽐特位,它们称为RCL 和 RCR 。例如,如果AX寄存器⽤这些指令来移位,那么有17位⽤来得到AX ,进位标志 位也包括在循环中。 简单应⽤ 这有⼀个代码⼩⽚断,它⽤来计算在EAX寄存器⾥\on(也就是: 1)的⽐特位有多少 个。 上⾯的代码毁掉了在EAX 中的初值(循环之后,EAX 的值为0) 。如果你想保留EAX 中的 值,那么⽤rol eax , 1替换第四⾏即可。 W3Cschool ( )最⼤的技术知识分享与学习平台 此篇 容来⾃于 ⽹站⽤户上传并发布。

文档评论(0)

hhuiws1482 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:5024214302000003

1亿VIP精品文档

相关文档