我想确保我100%理解这个概念,如果没有得到一些澄清。
在asm程序中,如果您执行SHR 00110000b
,最终会得到00011000b
。
但是,如果您要在SHR
上执行11111111b
,最终会得到错误的答案并应使用SAR
代替?这是因为号码已签名?
答案 0 :(得分:4)
如果你执行
SHR
00110000b,你最终会得到00011000b
如果你向右移一位,是的。您可以指定班次金额,因此不会固定为1。
但是,如果你要在11111111b上执行
SHR
,你最终会得到错误答案
如果您将11111111b的逻辑位移向右一位,则会得到01111111b。您是否认为不正确取决于您要实现的目标。如果您想保留标志,则应使用SAR
。