微机原理 th-移位指令

微机原理

第三章

逻辑运算指令与移位指令

移位指令

截屏2023-10-09 19.07.15

移位操作分两大类:
非循环移位:逻辑移位、算术移位。
循环移位:不带进位位的移位、带进位位的移位。

规定:移动一位时由指令中的计数值直接给出;移动两位及以上,则移位次数由CL指定,即必须将移位位数N事先装入CL中。

非循环移位

截屏2023-10-09 19.18.00

非循环移位指令有四条:逻辑左移、算术左移;逻辑右移、算术右移。(左移乘2、右移除以2)

算术左移(SAL)和逻辑左移(SHL)相同,可用于无符号数乘2操作;左移操作前的最高位送到CF、右边空位需补0。

逻辑右移(SHR),可用于无符号数除2操作;右移操作前的最低位送到CF、左边需补0。

算术右移(SAR)可用于有符号数除2操作;右移操作最高位会补充到右移最高位(补原来的本身),最低位送到CF。

例:

截屏2023-10-09 19.38.46

乘大一些的数值运算时的简易方法:
例如10,拆开后是2的三次方+2的一次,就是左移1次再加3次;
例如25,拆开后是2的四次方+2的三次+2的一次,左移1次再移3次再加4次。

截屏2023-10-09 19.54.30

循环移位指令

截屏2023-10-09 20.03.33

循环移位指令有四条:循环左移、循环右移;带进位循环左移、带进位循环右移。

循环左移(ROL):把最高位移到最低位,同时把没有移动前的最高位送到CF中。

循环右移(ROR):把最低位移到最高位,同时把没有移动前的最低位送到CF中。

带进位循环左移(RCL):已知CF的值,把OP目的最高位送入CF,CF的值送到OP目的最低位。
例:CF=1,AL=0011 1100,RCL AL,1;CF=0 AL=0111 1001

带进位循环右移(RCR):已知CF的值,把OP目的最低位送入CF,CF的值送到OP目的最高位。

提示

截屏2023-10-09 20.25.32

例题

截屏2023-10-09 20.22.52

© 2022 - 2024 PWN022. All rights reserved.
载入天数...载入时分秒...