【发布时间】:2019-12-02 20:50:46
【问题描述】:
对于我的课程,我们正在编写一个简单的 asm 程序(使用 C 和 AT&T x86-64),它打印整数或浮点数的所有位。我的整数部分工作正常。对于浮点部分,我的教授指示我们只使用整数寄存器传递浮点值。不太清楚为什么我们不允许使用浮点寄存器。无论如何,有没有人有关于如何去做这件事的想法?
【问题讨论】:
-
哪个部分导致您出现问题?
*(uint32_t*)&float_variable可能不是标准 C,但无论如何 :) 当然,您也可以将其地址传递为void*,这样就可以正常工作于整数和浮点数,并且也符合标准。 -
@Jester 使用
union使其成为标准。 -
传递给 printf?例如,只需使用
mov将其作为整数传递给%x转换。
标签: c assembly floating-point x86-64