游戏开发论坛

 找回密码
 立即注册
搜索
查看: 4254|回复: 10

请问在 AMD CPU 上 MMX,SSE 是否有效?

[复制链接]

13

主题

153

帖子

153

积分

注册会员

Rank: 2

积分
153
QQ
发表于 2004-12-7 23:41:00 | 显示全部楼层 |阅读模式
MMX,SSE 都是 Intel 公司的技术,在 AMD 处理器上有效果么?
另外两公司生产的处理器的基本指令是否都一致?  
[em24]

0

主题

63

帖子

63

积分

注册会员

Rank: 2

积分
63
发表于 2004-12-8 00:27:00 | 显示全部楼层

Re:请问在 AMD CPU 上 MMX,SSE 是否有效?

AMD和INTEL都有多种型号。可以使用CPUID检测一下。

187

主题

600

帖子

606

积分

高级会员

Rank: 4

积分
606
QQ
发表于 2004-12-8 07:13:00 | 显示全部楼层

Re:请问在 AMD CPU 上 MMX,SSE 是否有效?

我的AlthonXP的有效!
MMX SSE都有效

1万

主题

1万

帖子

2万

积分

管理员

中级会员

Rank: 9Rank: 9Rank: 9

积分
20686
发表于 2004-12-8 09:05:00 | 显示全部楼层

Re:请问在 AMD CPU 上 MMX,SSE 是否有效?

有的!

13

主题

153

帖子

153

积分

注册会员

Rank: 2

积分
153
QQ
 楼主| 发表于 2004-12-8 11:20:00 | 显示全部楼层

Re:请问在 AMD CPU 上 MMX,SSE 是否有效?

谢谢各位,那我就义无反顾的重新复习汇编了...呵呵:)

11

主题

102

帖子

102

积分

注册会员

Rank: 2

积分
102
发表于 2004-12-8 11:21:00 | 显示全部楼层

Re:请问在 AMD CPU 上 MMX,SSE 是否有效?

//3Dnow!的要另外?y...以下是判??PU是否支援MMX/SSE/SSE2/SSE3的

        BOOL                        bRet = FALSE;
        SYSTEM_INFO                si;

        GetSystemInfo( &si);

        if (si.dwProcessorType == PROCESSOR_INTEL_PENTIUM)
        {
                __asm       
                {
                        pusha

                        pushfd
                        pop                eax
                        xor                eax,00200000h
                        push        eax
                        popfd
                        pushfd
                        pop                ebx

                        cmp                eax,ebx
                        jne                L1

                        //CPUID_ENABLE

                        mov     eax, 1

                        //        CPUID
                        _emit        0xf
                        _emit        0xa2

                        //mov     cpu_type, eax

                        // Check MMX
                        mov                m_bIsMMX, edx
                        shr                m_bIsMMX, 23
                        and                m_bIsMMX, 1

                        // Check SSE
                        mov                m_bIsSSE, edx
                        shr                m_bIsSSE, 25                                       
                        and                m_bIsSSE, 1

                        // Check SSE2
                        mov                m_bIsSSE2, edx
                        shr                m_bIsSSE2, 26                                       
                        and                m_bIsSSE2, 1
                       
                        // Check SSE3
                        mov                m_bIsSSE3, ecx
                        and                m_bIsSSE3, 1

L1:
                        popa
                }
        }

13

主题

153

帖子

153

积分

注册会员

Rank: 2

积分
153
QQ
 楼主| 发表于 2004-12-8 12:37:00 | 显示全部楼层

Re:请问在 AMD CPU 上 MMX,SSE 是否有效?

非常感谢

50

主题

992

帖子

1012

积分

金牌会员

Rank: 6Rank: 6

积分
1012
发表于 2004-12-8 14:21:00 | 显示全部楼层

Re:请问在 AMD CPU 上 MMX,SSE 是否有效?

路过

11

主题

102

帖子

102

积分

注册会员

Rank: 2

积分
102
发表于 2004-12-8 16:17:00 | 显示全部楼层

Re:请问在 AMD CPU 上 MMX,SSE 是否有效?

//Visual C++ .NET 2003
//Samples: MMXSwarm
//?面的一部份....?是?yMMX?SSE2的...用例外?理的方式

const DWORD _MMX_FEATURE_BIT = 0x00800000;
const DWORD _SSE2_FEATURE_BIT = 0x04000000;

static bool _IsFeature(DWORD nFeature);


bool IsMMX()
{
        static bool bMMX = _IsFeature(_MMX_FEATURE_BIT);
        return(bMMX);
}


bool IsSSE2()
{
        static bool bSSE2 = _IsFeature(_SSE2_FEATURE_BIT);
        return(bSSE2);
}

static bool _IsFeature(DWORD dwRequestFeature)
{
        // This        bit        flag can get set on        calling        cpuid
        // with        register eax set to        1
        DWORD dwFeature        = 0;
        __try {
                        _asm {
                                mov        eax,1
                                cpuid
                                mov        dwFeature,edx
                        }
        } __except ( EXCEPTION_EXECUTE_HANDLER)        {
                        return false;
        }
        if ((dwRequestFeature == _MMX_FEATURE_BIT) &&
                (dwFeature & _MMX_FEATURE_BIT)) {
                __try {
                        __asm {
                                pxor mm0, mm0
                                emms
                        }
                } __except (EXCEPTION_EXECUTE_HANDLER) {
                        return (0);
                }
                return(true);
        }
        else if ((dwRequestFeature == _SSE2_FEATURE_BIT) &&
                (dwFeature & _SSE2_FEATURE_BIT)) {
                __try {
                        __asm {
                                xorpd xmm0, xmm0
                        }
                } __except (EXCEPTION_EXECUTE_HANDLER) {
                        return (0);
                }
                return(true);
        }

        return false;
}

35

主题

340

帖子

350

积分

中级会员

Rank: 3Rank: 3

积分
350
发表于 2004-12-9 12:04:00 | 显示全部楼层

Re:请问在 AMD CPU 上 MMX,SSE 是否有效?

路过
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-12-23 14:46

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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