所以我必须创建一个汇编函数,这将改变处理器对数字进行舍入的方式。我有那个。现在我需要证明这一点。所以我需要将 1 个值写入屏幕,然后更改舍入方法,然后写入相同的值并检查它在最不重要的螳螂位上是否发生了变化。那么我如何以 IEEE 3.14 格式编写 754 值,如下所示:
0 10000000 10010001111010111000011
我的意思是函数可以printf
它,也可以返回它,所以我可以从 C 调用该函数。
办法用printf输出二进制文件。如果需要这样做,则必须编写自己的函数。这已经在 SO 中介绍过,例如 这里.
如果要分解浮点数的组件(IEEE 754 单精度(,则可以像这样使用联合:
union float_bits
{
float f;
struct bits
{
unsigned int s:1;
unsigned int m:23;
unsigned int e:8;
} b;
};
然后,您将浮点数加载到 f 中,并从 b.s/b.m/b.e 读取符号/尾数/指数。
FST 指令将 FPU 注册表的值复制到内存中,使用 MOV 指令将其加载到 CPU 寄存器(C 局部变量(中(假设您在 x86 架构下(
请记住,FPU 寄存器有 80 位