将单词与字段隔离的逻辑操作



我正在研究计算机体系结构。在逻辑操作部分,它提出了这个问题:

哪些操作可以隔离单词中的字段?

  1. 左移后右移

我不确定这些陈述的操作如何在一个词中隔离一个字段。例如,我试图搜索,但找不到任何内容。谁能为此提供更深入的解释和例子?谢谢。

答案是AND。假设我们有一个双字节字 a=x35B8。通过使用 x00F0 执行 AND 操作,我们得到 x00B0。结果,B 已与初始单词隔离。但是第二种选择,先左移后右移不能做到这一点。

让我们取一个 8 位字,a = 01101011。您要隔离由最左侧的 4 位 b = 0110 组成的字段。通过执行 AND 操作(01101011 & 11110000),您可以获得 0110.
在结果中,b 已从 a 中分离出来。

另一个隔离字段的有用操作是 AND。您可以在第 88 页找到答案。

答案是 AND,原因如下。

  1. AND 操作具有屏蔽位的功能。例如,AND 0b1100 1111 可以屏蔽最左边第三个和第四个位中的任何位号。0b1111 1111 和 0b1100 1111 = ob1100 1111;1 表示未更改的位,0 表示要更改的位。因此,您可以使用 0 来屏蔽您想要在任何地方"清理"位字段的任何位。例如,0b 111111 ...111111;您可以通过 AND 0b111111 清理此数字的最后三个字段。111000.

  2. 但是,"左移后右移"只能清理最左侧的位字段。如果要清理0b11111111111的中间,不能使用"左移后右移",但可以使用"AND 0b1111100000011111"来处理。

最新更新