yihui10 2017-06-15 07:53 采纳率: 0%
浏览 1246
已结题

vs2015中MMx指令集 总是提示错误

#define YUV422ToRGB32_MMX(out_RGB_reg,WriteCode)/

asm psubusb mm0, csMMX_16_b /* mm0 : Y -= 16 / /
asm psubsw mm1, csMMX_128_w /
mm1 : u -= 128 / /
asm movq mm7, mm0 /
asm psubsw mm2, csMMX_128_w /
mm2 : v -= 128 / /
asm pand mm0, csMMX_0x00FF_w /
mm0 = 00 Y6 00 Y4 00 Y2 00 Y0 / /
asm psllw mm1, 3 /
mm1 : u = 8 */ /
asm psllw mm2, 3 /
mm2 : v = 8 */ /
asm psrlw mm7, 8 / /
mm7 = 00 Y7 00 Y5 00 Y3 00 Y1 */
asm movq mm3, mm1 /
asm movq mm4, mm2 /

asm pmulhw mm1, csMMX_U_green_w / /* mm1 = u * U_green /
asm psllw mm0, 3 /
y*=8 / /
asm pmulhw mm2, csMMX_V_green_w /
mm2 = v * V_green / /
asm psllw mm7, 3 / /
y*=8 /
asm pmulhw mm3, csMMX_U_blue_w /
asm paddsw mm1, mm2 /
asm pmulhw mm4, csMMX_V_red_w /
asm movq mm2, mm3 /
asm pmulhw mm0, csMMX_Y_coeff_w /
asm movq mm6, mm4 /
asm pmulhw mm7, csMMX_Y_coeff_w /
asm movq mm5, mm1 /
asm paddsw mm3, mm0 / /
mm3 = B6 B4 B2 B0 /
asm paddsw mm2, mm7 /
mm2 = B7 B5 B3 B1 / /
asm paddsw mm4, mm0 / /
mm4 = R6 R4 R2 R0 /
asm paddsw mm6, mm7 /
mm6 = R7 R5 R3 R1 / /
asm paddsw mm1, mm0 /
mm1 = G6 G4 G2 G0 / /
asm paddsw mm5, mm7 / /
mm5 = G7 G5 G3 G1 /
asm packuswb mm3, mm4 /
mm3 = R6 R4 R2 R0 B6 B4 B2 B0 to [0-255] / /
asm packuswb mm2, mm6 /
mm2 = R7 R5 R3 R1 B7 B5 B3 B1 to [0-255] / /
asm packuswb mm5, mm1 /
mm5 = G6 G4 G2 G0 G7 G5 G3 G1 to [0-255] / /
asm movq mm4, mm3 /
asm punpcklbw mm3, mm2 / /
mm3 = B7 B6 B5 B4 B3 B2 B1 B0 /
asm punpckldq mm1, mm5 / /
mm1 = G7 G5 G3 G1 xx xx xx xx /
asm punpckhbw mm4, mm2 / /
mm4 = R7 R6 R5 R4 R3 R2 R1 R0 /
asm punpckhbw mm5, mm1 / /
mm5 = G7 G6 G5 G4 G3 G2 G1 G0 /
/*out
/
asm pcmpeqb mm2, mm2 /* mm2 = FF FF FF FF FF FF FF FF / /
asm movq mm0, mm3 /
asm movq mm7, mm4 /
asm punpcklbw mm0, mm5 / /
mm0 = G3 B3 G2 B2 G1 B1 G0 B0 /
asm punpcklbw mm7, mm2 /
mm7 = FF R3 FF R2 FF R1 FF R0 / /
asm movq mm1, mm0 /
asm movq mm6, mm3 /
asm punpcklwd mm0, mm7 / /
mm0 = FF R1 G1 B1 FF R0 G0 B0 /
asm punpckhwd mm1, mm7 /
mm1 = FF R3 G3 B3 FF R2 G2 B2 / /
asm WriteCode[out_RGB_reg], mm0 /
asm movq mm7, mm4 /
asm punpckhbw mm6, mm5 / /
mm6 = G7 B7 G6 B6 G5 B5 G4 B4 /
asm WriteCode[out_RGB_reg + 8], mm1 /
asm punpckhbw mm7, mm2 / /
mm7 = FF R7 FF R6 FF R5 FF R4 /
asm movq mm0, mm6 /
asm punpcklwd mm6, mm7 / /
mm6 = FF R5 G5 B5 FF R4 G4 B4 /
asm punpckhwd mm0, mm7 / /
mm0 = FF R7 G7 B7 FF R6 G6 B6 */
asm WriteCode[out_RGB_reg + 8 * 2], mm6 /
asm WriteCode[out_RGB_reg + 8 * 3], mm0

为什么总是提示
错误 C2059 语法错误:“__asm”

应该怎么修改 求大神讲解

  • 写回答

2条回答 默认 最新

  • threenewbee 2017-06-15 18:38
    关注
    评论

报告相同问题?

悬赏问题

  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料