汇编中,假设要求16M,那么我想用移位指令实现:MOV AX,M MOV CL,4 SHL AX,CL 但是正负号能保证不变么?

问题描述:

汇编中,假设要求16M,那么我想用移位指令实现:MOV AX,M MOV CL,4 SHL AX,CL 但是正负号能保证不变么?

向左移或者循环移位不能,因为最高位随着移位有可能翻转
但是算术右移结果不为0时则可以保证正负号不变,移位时随时进行了符号扩展