ZHCU875Z August 2001 – October 2023 SM320F28335-EP
初始化单精度和双精度浮点值
.float value[, ..., valuen]
.xfloat value[, ..., valuen]
.xldouble value[, ..., valuen]
.float 和 .xfloat 指令将单浮点常量的 IEEE 单精度浮点表示应用于当前段中的一个字中。值 必须是具有算术类型的绝对常量表达式,或等同于具有算术类型的绝对常量表达式的符号。每个常量都转换为 IEEE 单精度 32 位格式的浮点值。
.float 指令在长字边界上对齐浮点常量,而 .xfloat 指令则不会。
存储 32 位值时首先存储指数字节,然后存储小数的最低有效字,最后存储小数的最高有效字,其格式如图 5-6 所示。
.xldouble 指令将双浮点常量的 IEEE 双精度浮点表示应用于当前段中的两个字中。值 必须是具有算术类型的绝对常量表达式,或等同于具有算术类型的绝对常量表达式的符号。每个常量都转换为 IEEE 双精度 64 位格式的双精度浮点值。存储 64 位值时首先存储指数字节,然后存储小数的最低有效字,最后存储小数的最高有效字。
当您在 .struct/.endstruct 序列中使用 .float 时,.float 会定义成员的大小;但不会初始化存储器。如需更多信息,请参阅 .struct/.endstruct/.tag 主题。
以下是 .float 和 .xfloat 指令的示例:
1 00000000 5951 .float -1.0e25
00000001 E904
2 00000002 0010 .byte 0x10
3 00000003 0000 .xfloat 123.0 ; not on long-word boundary
00000004 42F6
4 00000006 0000 .float 3 ; aligns on long-word boundary
00000007 4040