游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2939|回复: 9

懂mmx的高手进 急求

[复制链接]

33

主题

101

帖子

107

积分

注册会员

Rank: 2

积分
107
发表于 2007-8-30 20:41:00 | 显示全部楼层 |阅读模式
void Qmemset(void *dst, int c, unsigned long nQWORDs)
{
__asm
{
movq mm0, c
punpcklbw mm0, mm0
punpcklwd mm0, mm0
punpckldq mm0, mm0
mov edi, dst
mov ecx, nQWORDs
lea edi, [edi + ecx * 8]
neg ecx
movq mm1, mm0
movq mm2, mm0
movq mm3, mm0
movq mm4, mm0
movq mm5, mm0
movq mm6, mm0
movq mm7, mm0
loopwrite:
movntq [edi + ecx * 8     ], mm0
movntq [edi + ecx * 8 + 8 ], mm1
movntq [edi + ecx * 8 + 16], mm2
movntq [edi + ecx * 8 + 24], mm3
movntq [edi + ecx * 8 + 32], mm4
movntq [edi + ecx * 8 + 40], mm5
movntq [edi + ecx * 8 + 48], mm6
movntq [edi + ecx * 8 + 56], mm7
add ecx, 8
jnz loopwrite
emms
}
}

这段程序总是报错  是vc的内敛汇编
movntq [edi + ecx * 8     ], mm0
movntq [edi + ecx * 8 + 8 ], mm1
movntq [edi + ecx * 8 + 16], mm2
movntq [edi + ecx * 8 + 24], mm3
movntq [edi + ecx * 8 + 32], mm4
movntq [edi + ecx * 8 + 40], mm5
movntq [edi + ecx * 8 + 48], mm6
movntq [edi + ecx * 8 + 56], mm7
这里报错   是为什么啊?

18

主题

971

帖子

982

积分

高级会员

Rank: 4

积分
982
发表于 2007-8-31 08:57:00 | 显示全部楼层

Re:懂mmx的高手进 急求

……

5

主题

686

帖子

697

积分

高级会员

Rank: 4

积分
697
QQ
发表于 2007-8-31 11:29:00 | 显示全部楼层

Re:懂mmx的高手进 急求

检查一下*dst指针是否有效,指向的内存块是否已经分配足够的大小
ps:movntq不是mmx的吧……

3

主题

35

帖子

35

积分

注册会员

Rank: 2

积分
35
QQ
发表于 2007-8-31 11:31:00 | 显示全部楼层

Re:懂mmx的高手进 急求

SSE...

33

主题

101

帖子

107

积分

注册会员

Rank: 2

积分
107
 楼主| 发表于 2007-8-31 12:53:00 | 显示全部楼层

Re:懂mmx的高手进 急求

说错了  是sse   关键是编译就不能通过  错误是found "["

33

主题

101

帖子

107

积分

注册会员

Rank: 2

积分
107
 楼主| 发表于 2007-8-31 13:31:00 | 显示全部楼层

Re:懂mmx的高手进 急求

哦 我知道了 我的编译器是VC60   movntq指令必须在vc7以上的编译器才可以编译

6

主题

47

帖子

53

积分

注册会员

Rank: 2

积分
53
发表于 2007-8-31 14:02:00 | 显示全部楼层

Re:懂mmx的高手进 急求

使用前要初始化MMX寄存器,用完要放开

33

主题

101

帖子

107

积分

注册会员

Rank: 2

积分
107
 楼主| 发表于 2007-9-1 13:27:00 | 显示全部楼层

Re:懂mmx的高手进 急求

别人说要用emit来模拟movntq指令  该怎么模拟啊?

23

主题

515

帖子

552

积分

高级会员

Rank: 4

积分
552
发表于 2007-9-2 21:06:00 | 显示全部楼层

Re:懂mmx的高手进 急求

模拟就是直接插入相应的机器吗
如果不懂,建议不要使用,直接用memset

33

主题

101

帖子

107

积分

注册会员

Rank: 2

积分
107
 楼主| 发表于 2007-9-3 21:23:00 | 显示全部楼层

Re:懂mmx的高手进 急求

哦 机器码  确实不清楚  
主要是要经常使用memset   别人介绍这个sse写的比memset快200%  有点诱人
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-12-19 07:47

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表