算术移位、逻辑移位和循环移位知识分享

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1)算术移位当乘数或除数是2n时,算术移位用来快速地

上2n,执行方法是把原来的数中每一位都向左移动n个位置,左面移出的高位丢弃不要,右面低位空出的位置上全部补0。

一位都向左移动n个位置,左面移出的高位丢弃不要,右面

把原来数中的每一位都向右移动n个位置,右面移出的低位丢弃不要,左面高位空出的位置上全部补0。

逻辑移位:不考虑正负号

算术移位:考虑正负号。

A.逻辑移位(不管是左移位还是右移位)都是空缺处补0 例如:mov ax ,1100_0111_0110_1000B

mov cl ,3 [逻辑左移3位←]

shl ax ,cl ; 结果ax = 0011_1011_0100_0000

mov ax ,1100_0111_0110_1000B

mov cl ,3 [逻辑右移3位→]

shr ax ,cl ; 结果ax =0001_1000_1110_1101

B.算术移位要保证符号位的不改变(算术左移位补0,算术右移位看符号位)

例如:mov ax ,1100_0111_0110_1000B

mov cl ,3 [算术左移3位←]

sal ax ,cl ; 结果ax = 0011_1011_0100_0000

mov ax ,1100_0111_0110_1000B

mov cl ,3 [算术右移3位→]

sar ax ,cl ; 结果ax = 1111_1000_1110_1101

mov ax ,0100_0111_0110_1000B

mov cl ,3 [算术右移3位→]

sar ax ,cl ; 结果ax = 0000_1000_1110_1101

相关文档
最新文档