算术移位——把操作数看做有符号数: 逻辑移 把操作数看做无符号数 移位位数放在CL寄存器中,如果只移1位,也 可以直接写在指令中。例如: MOV CL. 4 SHR AL,CL;AL中的内容右移4位 >影响C,P,S,Z,0标志 >结果未溢出时 左移1位≡操作数*2 右移1位≡操作数/2
11 ➢算术移位——把操作数看做有符号数; 逻辑移位——把操作数看做无符号数。 ➢移位位数放在CL寄存器中,如果只移1位,也 可以直接写在指令中。例如: MOV CL,4 SHR AL,CL ;AL中的内容右移4位 ➢影响C,P,S,Z,O标志。 ➢结果未溢出时: 左移1位≡操作数*2 右移1位≡操作数/2
例:把AL中的数x乘10 因为10=8+2=23+21,所以可用移位实现乘10 操作。程序如下: SAL AL, 1 2x MOV AHAL SAL AL. 1 SAL AL, 1:8x ADD ALAH:8x+2x 1Ox
12 例:把AL中的数x乘10 因为10=8+2=23+21,所以可用移位实现乘10 操作。程序如下: SAL AL,1 ; 2x MOV AH,AL SAL AL,1 ; 4x SAL AL,1 ; 8x ADD AL,AH ; 8x+2x = 10x