查看: 29|回覆: 0

汇编语言-移位指令

[複製鏈接]

3

主題

0

回帖

0

積分

热心网友

金币
0
閲讀權限
220
精華
0
威望
0
贡献
0
在線時間
0 小時
註冊時間
2009-11-24
發表於 2020-5-29 23:01:00 | 顯示全部樓層 |閲讀模式

基本概念
移位操作指令:移位操作指令是一组经常使用的指令,属于汇编语言逻辑指令中的一部分,它包括移位指令(含算术移位指令、逻辑移位指令),循环移位指令(含带进位的循环移位指令),双精度移位指令三大类。其功能为将目的操作数的所有位按操作符规定的方式移动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



来源:https://www.cnblogs.com/ganxiang/p/12990064.html
回覆

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 立即注册

本版積分規則

相关侵权、举报、投诉及建议等,请发 E-mail:qiongdian@foxmail.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部