分类: C/C++
2008-08-01 10:49:12
因为对压缩产生了兴趣,所以下载了众所周知的库zlib v1.2.3版来玩玩,但是发现在VC2005下无法编译汇编代码 inffas32.asm,错误如下:
inffas32.asm(594) : error A2070: invalid instruction operands
inffas32.asm(596) : error A2070: invalid instruction operands
inffas32.asm(610) : error A2070: invalid instruction operands
inffas32.asm(667) : error A2070: invalid instruction operands
压缩操作是明显的计算密集型操作,缺乏手工优化的汇编代码会慢不少。好在这个库是个用途广泛的东西,很快就找到了结果。
依据的 说法,这个情况是By Design,不是Bug。只需要将inffas32.asm 文件中的 4 处出错的类似 movd mm4, [esp+0] 的汇编代码,添加 dword ptr 修饰符,改为 movd mm4, dword ptr [esp+0] 即可。