2

对于家庭作业,我应该将存储在数据段中的单精度 IEEE 754 数字乘以 4 并将结果存储回来。我完全理解 IEEE 754 的工作原理以及如何完成这个简单的乘法(Exp +2)。

但是,我无法弄清楚我应该如何使用 32 位二进制文​​件,因为 MIPS 似乎不支持二进制表示,并且从数据段中读取 32 个 0 和 1 似乎有点复杂我,特别是因为我们应该写下指令而不是上传程序。

除了愚蠢地逐个处理位之外,还有什么办法可以弄乱二进制 IEEE754 表示?我不允许使用任何浮点运算,应该忽略溢出等。

4

1 回答 1

3

您可以分组操作这些位。例如,您可以通过屏蔽(使用逻辑与)然后移位来提取选定的位。您可以通过删除现有位值(使用 AND)将特定位放回原处,将要放回的位移回正确的位置,然后组合(使用 OR)。

逻辑与、或、左移和右移的组合允许您将位作为一个大组进行操作。

例如,要从 32 位无符号值中提取高 4 位,与 F0000000 进行与运算,然后右移 28 位。用 Y 替换 X 的四个高位,用 0FFFFFFFF 替换 X,然后用 Y 右移 28 位 OR 它。等等。

于 2013-05-23T18:36:12.390 回答