2 assembly bit-manipulation mips shift bitwise-operators
我在书中读到了这句话:
逻辑和移位指令分别对位进行操作与算术不同,后者对整个字进行操作
用于隔离字段.通过遮蔽或来回移动.
我根本无法理解这两句话.
移位和算术指令都会改变所有位(在某些情况下),并且在算术中,逐位添加位以计算答案.
那么这部分的含义是什么?"指令单独操作指令不同于算术,它对整个单词进行操作"?
我的第二个问题:
我不知道对这部分有任何想法你能解释一下吗:
用于隔离字段.通过遮蔽或来回移动.
我的第三个问题:什么是逻辑指令.他的意思是AND,例如?你能解释一下吗?
逻辑和移位操作通常称为按位操作和单独操作位,这意味着每个输出位仅取决于输入中单个固定位位置的位,您可以立即计算该位而不依赖于任何位其他位或以前的计算结果
例如,在AND,OR,XOR,NOT ... output[n](即输出中的位n)是从input1[n]和计算的input2[n].类似地左移由N个产生output[i]从只input[i - N].我正在从这里拍摄样本图像,以便更容易理解
OTOH加法结果中的每一位取决于进位,你必须等待先前的加法运算完成,如下所示S n = A n + B n + C n
可以通过使用进位超前加法器中的某些逻辑预先计算进位来实现更快的添加,但它仍然比较慢并且需要比没有依赖的按位运算更多的芯片面积.类似地,也不能通过单独获得每个输出位来完成其他算术运算.
这是你的第一个和第三个问题.关于第二个
用于隔离字段通过屏蔽或来回移动.
意味着他们习惯通过使用AND屏蔽来获取位字段(即,只允许该字段中的位通过滤除掩码为零的位置中的位),或者通过将位移出到零并移回到他们原来的位置
进一步阅读: