问题:使用gnu编译编译vxWorks的库文件时,编译到cacheAim970ALib.s会报这个错误。
答复:错误 cacheAim970ALib.s:433: Error: operand out of range (32768 not between -32768 and 32767) 的原因是汇编语句 li p2, SCOM_DATA_STS_MODE_L2_DIRECT 中,SCOM_DATA_STS_MODE_L2_DIRECT的值是0x8000,li 语句是按照有符号数来解析后面的参数的,所以此处扩展以后超过了16位数的范围,使用diab编译库文件可以避免这个问题(可能对语法的理解不同,diab编译也不影响结果,风河原始的库都是diab编译的)。
阅读(1210) | 评论(0) | 转发(0) |