我正在学习汇编语言(特定于x86)。我理解SAL和SHL的工作方式是类似的(清除lsb并将msb传送到CF),从这里到Difference between SHL and SAL in 80x86。
考虑到SHR和SAR的操作方式不同(后者保持msb不变)。
我想对有一个清晰的概念,为什么--移位算术的功能--右SAR的功能与Shift右SHR不同,但同时SHL和SAL保持着相似的功能?
发布于 2016-03-12 11:18:16
因为在左转的情况下没什么可保存的。如果左移位改变了符号(您可能希望以某种方式防止这种情况),则没有溢出的结果将不适合寄存器(这是自动的--如果符合,那么它一开始就不会溢出)。所以无论如何你也无能为力。
但是右移位不能溢出,它会使数字变小(或者保持不变)。所以现在你可以选择,我是否保持顶部一点完整。
https://stackoverflow.com/questions/35956877
复制相似问题