【发布时间】:2014-05-18 22:15:06
【问题描述】:
我在第 24 行收到一个解析错误(我相信)“'[' token 之前的解析错误”
另外,如果你们中的任何人想给我一些有用的提示和对我的项目的见解,我将非常感激。我正在构建一个 pow 函数,所有计算都在 asm 中完成,这段代码是将 FPU 更改为舍入为 0,以便我可以将指数分成 2 部分(例如:2^3.2 = 2^3 * 2 ^0.2)
#include <stdio.h>
#include <stdlib.h>
#define PRECISION 3
#define RND_CTL_BIT_SHIFT 10
// floating point rounding modes: IA-32 Manual, Vol. 1, p. 4-20
typedef enum {
ROUND_TOWARD_ZERO = 3 << RND_CTL_BIT_SHIFT
} RoundingMode;
int main(int argc, char **argv)
{
int fpMask = 0x1F9FF;
int localVar = 0x00000;
asm(" FSTCW %[localVarIn] \n" // store FPU control word into localVar
" add %[localVarIn], %[fpMaskOut] \n" // add fpMaskIn to localVar
: [localVarOut] "=m" (localVar)
: [fpMaskOut] "=m" (fpMask)
: [localVarIn] "m" (localVar)
: [fpMaskIn] "m" (localVar)
);
printf("FPU is 0x%08X\n\n", localVar);
return 0;
}
【问题讨论】:
-
我在 Cygwin 中使用 gcc。对不起。
标签: c gcc assembly inline-assembly parse-error