На главную
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Перед отправкой сообщения внимательно прочтите правила раздела!!!
1. Запрещается обсуждать написание вирусов, троянов и других вредоносных программ!
2. Помните, что у нас есть FAQ раздела Assembler и Полезные ссылки. Посмотрите, возможно, там уже имеется решение вашего вопроса.

3. Настоятельно рекомендуем обратить особое внимание на правила форума, которые нарушаются чаще всего:
  3.1. Заголовок темы должен кратко отражать её суть. Темы с заголовками типа "Срочно помогите!" или "Ассемблер" будут отправляться в Корзину для мусора.
  3.2. Исходники программ обязательно выделяйте тегами [code]...[/code] (одиночные инструкции можно не выделять).
  3.3. Нежелательно поднимать старые темы (не обновлявшиеся более года) без веской на то причины.

Не забывайте также про главные Правила форума!

Добро пожаловать и приятного вам общения!!! ;)
 
Модераторы: Jin X, Qraizer
  
> Определение микроархитектуры CPU
    У меня тут задачка стоит - определить кодовое название микро/архитектуры процессора, например Prescott, Wolfdale, Haswell, SkyLake и т.д. Кто-нибудь сталкивался с подобным?

    Я пытался найти какие-либо базы в сети, но тщетно и решил тупо создать свою.
    По картинкам CPU-Z в гугле заметил закономерность, что кодовое название можно вычислить по "Family/Model/Stepping", которые возвращает инструкция CPUID.EAX=1 в регистре EAX. Кому не трудно, просьба скинуть мне данные своего процессора, как во-вложении.
    ExpandedWrap disabled
               mov     eax,1
               cpuid
              cinvoke  printf,<'Family/Model/Stepping: %X',0>,eax

    Прикреплённый файлПрикреплённый файлCPUZ.png (15,41 Кбайт, скачиваний: 85)

    Эта тема была разделена из темы "Измерение времени выполнения кода"
      Цитата Jin X @
      Я думаю, только по Family/Model/Stepping и определяется как раз микроархитектура.

      Проблема в том, что у одной архитектуры могут быть разные коды, в зависимости от модели процессора. У Агнера в растактовках есть небольшой список, плюс я добавил к нему что нашёл. На данный момент получил следующее:

      "CPUID-code"

      ExpandedWrap disabled
        AMD K7 Athlon                            6 6  -  Step. 2, rev. A5
        AMD K8 Opteron                           F 5  -  Stepping A
        AMD K10 Opteron                         10 2  -  2350, step. 1
        AMD Liano                               12 1  -  A4-3400, step 0
        AMD Bulldozer Bulldozer, Zambezi        15 1  -  FX-6100, step 2
        AMD Piledriver Piledriver               15 2  -  FX-8350, step 0. And others
        AMD Steamroller Steamroller, Kaveri     15 30 -  A10-7850K, step 1
        AMD Excavator Bristol Ridge             15 65 -  A10-9700E, step 1
        AMD Ryzen Zen                           17 1  -  Ryzen 7 1800X, step 1
        AMD Bobcat Bobcat                       14 1  -  E350, step. 0
        AMD Kabini Jaguar                       16 0  -  A4-5000, step 1
         
        Intel Pentium P5                         5 2
        Intel Pentium MMX P5                     5 4  -  Stepping 4
        Intel Pentium II P6                      6 6
        Intel Pentium III P6                     6 7
        Intel Pentium 4 Netburst                 F 2  -  Stepping 4, rev. B0
        Intel Pentium 4 EM64T Netburst,Prescott  F 4  -  Xeon. Stepping 1
        Intel Pentium M Dothan                   6 D  -  Stepping 6, rev. B1
        Intel Core Duo Yonah                     6 E  -  Not fully tested
        Intel Core 2 (65 nm) Merom,Conroe        6 F  -  T5500, Step. 6, rev. B2
        Intel Core 2 (45 nm) Wolfdale            6 17 -  E8400, Step. 6
        Intel Core i7 Nehalem                    6 1A -  i7-920, Step. 5, rev. D0
        Intel 2nd gen. Core Sandy Bridge         6 2A -  i5-2500, Step 7
        Intel 3rd gen. Core Ivy Bridge           6 3A -  i7-3770K, Step 9
        Intel 4th gen. Core Haswell              6 3C -  i7-4770K, step. 3
        Intel 5th gen. Core Broadwell            6 4F -  i7-6950K, step 1
        Intel 5th gen. Core Broadwell            6 56 -  D1540, step 2
        Intel 6th gen. Core Skylake              6 5E -  Step. 3
        Intel 7th gen. Core Skylake-X            6 55 -  Step. 4
        Intel 9th gen. Core Coffee Lake          6 9E -  Step. B
        Intel Atom 330 Diamondville              6 1C -  Step. 2
        Intel Bay Trail Silvermont               6 37 -  Step. 3
        Intel Apollo Lake Goldmont               6 5C -  Step. 9
        Intel Gemini Lake Goldmont Plus          6 7A -  Step. 1
        Intel Xeon Phi Knights Landing           6 57 -  Step. 1

      Сообщение отредактировано: core-i7 -
        https://www.intel.com/content/dam/www/publi...tion-manual.pdf

        Таблица С-1 (страница 649)
          Цитата Pavia @
          Таблица С-1 (страница 649)
          Староватый ман, есть 2020-го года, хотя там вроде в этом месте не много отличий:
          https://software.intel.com/content/dam/deve...tion-manual.pdf
          (тут таблица D-1) :)

          Добавлено
          Кстати, новые маны (основные) вышли, наконец-то. Причём, написали, что от мая 2020, хотя я в июне смотрел, не было.
            Спасибо за наводку!
            блин, у меня оказывается тоже есть этот ман, а я ищу на стороне..

            Поймал в сети такую доку - вроде список полный, но только для Интела
            https://www.intel.com/content/dam/www/publi...te-guidance.pdf
            Сообщение отредактировано: core-i7 -
              Цитата core-i7 @
              Кому не трудно, просьба скинуть мне данные своего процессора, как во-вложении.

              Лови ... тезка моего камня :lol:

              user posted image
                Цитата core-i7 @
                Кому не трудно, просьба скинуть мне данные своего процессора, как во-вложении.
                Есть более простой способ получения подобной инфы: http://www.cpu-world.com/cgi-bin/CPUID.pl ;)

                Моё (AIDA64)
                ExpandedWrap disabled
                  --------[ ЦП ]----------------------------------------------------------------------------------------------------------
                   
                      Свойства ЦП:
                        Тип ЦП                                            QuadCore Intel Core i5-2500K, 3700 MHz (37 x 100)
                        Псевдоним ЦП                                      Sandy Bridge-DT
                        Степпинг ЦП                                       D2
                        Наборы инструкций                                 x86, x86-64, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AES
                        Исходная частота                                  3300 МГц
                        Мин./макс. множитель ЦП                           16x / 57x
                        Engineering Sample                                Нет
                        Кэш L1 кода                                       32 КБ per core
                        Кэш L1 данных                                     32 КБ per core
                        Кэш L2                                            256 КБ per core  (On-Die, ECC, Full-Speed)
                        Кэш L3                                            6 МБ  (On-Die, ECC, Full-Speed)
                   
                      Физическая информация о ЦП:
                        Тип корпуса                                       1155 Contact FC-LGA
                        Размеры корпуса                                   37.5 mm x 37.5 mm
                        Число транзисторов                                1160 млн.
                        Технологический процесс                           32 nm, CMOS, Cu, High-K + Metal Gate
                        Размер кристалла                                  216 mm2
                        Типичная мощность                                 95 W
                   
                      Производитель ЦП:
                        Фирма                                             Intel Corporation
                        Информация о продукте                             https://ark.intel.com/content/www/us/en/ark/search.html?q=Intel%20Core%20i5-2500K
                        Обновление драйверов                              http://www.aida64.com/goto/?p=drvupdates
                   
                      Multi CPU:
                        ID системной платы                                ALASKA A M I
                        CPU #1                                            Intel(R) Core(TM) i5-2500K CPU @ 3.30GHz, 3303 МГц
                        CPU #2                                            Intel(R) Core(TM) i5-2500K CPU @ 3.30GHz, 3303 МГц
                        CPU #3                                            Intel(R) Core(TM) i5-2500K CPU @ 3.30GHz, 3303 МГц
                        CPU #4                                            Intel(R) Core(TM) i5-2500K CPU @ 3.30GHz, 3303 МГц
                   
                  --------[ CPUID ]-------------------------------------------------------------------------------------------------------
                   
                      Свойства CPUID:
                        Производитель CPUID                               GenuineIntel
                        Имя ЦП CPUID                                      Intel(R) Core(TM) i5-2500K CPU @ 3.30GHz
                        Версия CPUID                                      000206A7h
                        Идентификатор марки IA                            00h  (Неизвестно)
                        Идентификатор платформы                           47h / MC 02h  (LGA1155)
                        Версия обновления микрокода                       2Eh
                        SMT / CMP                                         0 / 4
                        Температура Tjmax                                 98 °C  (208 °F)
                        CPU Thermal Design Power (TDP)                    95 W
                        CPU IA Cores Thermal Design Current               300 A
                        CPU GT Cores Thermal Design Current               300 A
                        CPU Max Power Limit                               Unlimited Power / Unlimited Time
                        CPU Power Limit 1 (Long Duration)                 1000 W / Unlimited Time  (Unlocked)
                        CPU Power Limit 2 (Short Duration)                1200 W / Unlimited Time  (Unlocked)
                        Max Turbo Boost Multipliers                       1C: 37x, 2C: 37x, 3C: 37x, 4C: 37x
                   
                      Наборы инструкций:
                        64-бит x86-расширение (AMD64, Intel64)            Поддерживается
                        AMD 3DNow!                                        Не поддерживается
                        AMD 3DNow! Professional                           Не поддерживается
                        AMD 3DNowPrefetch                                 Не поддерживается
                        AMD Enhanced 3DNow!                               Не поддерживается
                        AMD Extended MMX                                  Не поддерживается
                        AMD FMA4                                          Не поддерживается
                        AMD MisAligned SSE                                Не поддерживается
                        AMD SSE4A                                         Не поддерживается
                        AMD XOP                                           Не поддерживается
                        Cyrix Extended MMX                                Не поддерживается
                        Enhanced REP MOVSB/STOSB                          Не поддерживается
                        Enqueue Stores                                    Не поддерживается
                        Galois Field New Instructions (GFNI)              Не поддерживается
                        Float-16 Conversion Instructions                  Не поддерживается
                        IA-64                                             Не поддерживается
                        IA AES Extensions                                 Поддерживается
                        IA AVX                                            Поддерживается, Разрешено
                        IA AVX2                                           Не поддерживается
                        IA AVX-512 (AVX512F)                              Не поддерживается
                        IA AVX-512 4x Fused Multiply-Add Single Precision (AVX512_4FMAPS)Не поддерживается
                        IA AVX-512 4x Neural Network Instructions (AVX512_4VNNIW)Не поддерживается
                        IA AVX-512 52-bit Integer Multiply-Add Instructions (AVX512_IFMA)Не поддерживается
                        IA AVX-512 BF16 (AVX512_BF16)                     Не поддерживается
                        IA AVX-512 Bit Algorithm (AVX512_BITALG)          Не поддерживается
                        IA AVX-512 Byte and Word Instructions (AVX512BW)  Не поддерживается
                        IA AVX-512 Conflict Detection Instructions (AVX512CD)Не поддерживается
                        IA AVX-512 Doubleword and Quadword Instructions (AVX512DQ)Не поддерживается
                        IA AVX-512 Exponential and Reciprocal Instructions (AVX512ER)Не поддерживается
                        IA AVX-512 Intersection (AVX512_VP2INTERSECT)     Не поддерживается
                        IA AVX-512 Neural Network Instructions (AVX512_VNNI)Не поддерживается
                        IA AVX-512 Prefetch Instructions (AVX512PF)       Не поддерживается
                        IA AVX-512 Vector Bit Manipulation Instructions (AVX512_VBMI)Не поддерживается
                        IA AVX-512 Vector Bit Manipulation Instructions 2 (AVX512_VBMI2)Не поддерживается
                        IA AVX-512 Vector Length Extensions (AVX512VL)    Не поддерживается
                        IA AVX-512 VPOPCNTDQ                              Не поддерживается
                        IA BMI1                                           Не поддерживается
                        IA BMI2                                           Не поддерживается
                        IA FMA                                            Не поддерживается
                        IA MMX                                            Поддерживается
                        IA SHA Extensions                                 Не поддерживается
                        IA SSE                                            Поддерживается
                        IA SSE2                                           Поддерживается
                        IA SSE3                                           Поддерживается
                        IA Supplemental SSE3                              Поддерживается
                        IA SSE4.1                                         Поддерживается
                        IA SSE4.2                                         Поддерживается
                        Vector AES (VAES)                                 Не поддерживается
                        VIA Alternate Instruction Set                     Не поддерживается
                        Инструкция ADCX / ADOX                            Не поддерживается
                        Инструкция CLDEMOTE                               Не поддерживается
                        Инструкция CLFLUSH                                Поддерживается
                        Инструкция CLFLUSHOPT                             Не поддерживается
                        Инструкция CLWB                                   Не поддерживается
                        Инструкция CLZERO                                 Не поддерживается
                        Инструкция CMPXCHG8B                              Поддерживается
                        Инструкция CMPXCHG16B                             Поддерживается
                        Инструкция Conditional Move                       Поддерживается
                        Инструкция Fast Short REP MOV                     Не поддерживается
                        Инструкция INVPCID                                Не поддерживается
                        Инструкция LAHF / SAHF                            Поддерживается
                        Инструкция LZCNT                                  Не поддерживается
                        Инструкция MCOMMIT                                Не поддерживается
                        Инструкция MONITOR / MWAIT                        Поддерживается
                        Инструкция MONITORX / MWAITX                      Не поддерживается
                        Инструкция MOVBE                                  Не поддерживается
                        Инструкция MOVDIR64B                              Не поддерживается
                        Инструкция MOVDIRI                                Не поддерживается
                        Инструкция PCLMULQDQ                              Поддерживается
                        Инструкция PCOMMIT                                Не поддерживается
                        Инструкция PCONFIG                                Не поддерживается
                        Инструкция POPCNT                                 Поддерживается
                        Инструкция PREFETCHWT1                            Не поддерживается
                        Инструкция PTWRITE                                Не поддерживается
                        Инструкция RDFSBASE / RDGSBASE / WRFSBASE / WRGSBASEНе поддерживается
                        Инструкция RDPRU                                  Не поддерживается
                        Инструкция RDRAND                                 Не поддерживается
                        Инструкция RDSEED                                 Не поддерживается
                        Инструкция RDTSCP                                 Поддерживается
                        Инструкция SKINIT / STGI                          Не поддерживается
                        Инструкция SYSCALL / SYSRET                       Не поддерживается
                        Инструкция SYSENTER / SYSEXIT                     Поддерживается
                        Trailing Bit Manipulation Instructions            Не поддерживается
                        Инструкция VIA FEMMS                              Не поддерживается
                        Инструкция VPCLMULQDQ                             Не поддерживается
                        Инструкция WBNOINVD                               Не поддерживается
                   
                      Функции безопасности:
                        Advanced Cryptography Engine (ACE)                Не поддерживается
                        Advanced Cryptography Engine 2 (ACE2)             Не поддерживается
                        Control-flow Enforcement Technology - Indirect Branch Tracking (CET_IBT)Не поддерживается
                        Control-flow Enforcement Technology - Shadow Stack (CET_SS)Не поддерживается
                        Запрет исполнения данных (DEP, NX, EDB)           Поддерживается
                        Enhanced Indirect Branch Restricted Speculation   Не поддерживается
                        Hardware Random Number Generator (RNG)            Не поддерживается
                        Hardware Random Number Generator 2 (RNG2)         Не поддерживается
                        Indirect Branch Predictor Barrier (IBPB)          Поддерживается
                        Indirect Branch Restricted Speculation (IBRS)     Поддерживается
                        L1D Flush                                         Поддерживается
                        MD_CLEAR                                          Не поддерживается
                        Memory Protection Extensions (MPX)                Не поддерживается
                        PadLock Hash Engine (PHE)                         Не поддерживается
                        PadLock Hash Engine 2 (PHE2)                      Не поддерживается
                        PadLock Montgomery Multiplier (PMM)               Не поддерживается
                        PadLock Montgomery Multiplier 2 (PMM2)            Не поддерживается
                        Серийный номер процессора (PSN)                   Не поддерживается
                        Protection Keys for User-Mode Pages (PKU)         Не поддерживается
                        Read Processor ID (RDPID)                         Не поддерживается
                        Safer Mode Extensions (SMX)                       Не поддерживается
                        Secure Memory Encryption (SME)                    Не поддерживается
                        SGX Launch Configuration (SGX_LC)                 Не поддерживается
                        Software Guard Extensions (SGX)                   Не поддерживается
                        Single Thread Indirect Branch Predictors (STIBP)  Поддерживается
                        Speculative Store Bypass Disable (SSBD)           Поддерживается
                        Supervisor Mode Access Prevention (SMAP)          Не поддерживается
                        Supervisor Mode Execution Protection (SMEP)       Не поддерживается
                        Total Memory Encryption (TME)                     Не поддерживается
                        User-Mode Instruction Prevention (UMIP)           Не поддерживается
                   
                      Функции электропитания:
                        APM Power Reporting                               Не поддерживается
                        Application Power Management (APM)                Не поддерживается
                        Automatic Clock Control                           Поддерживается
                        Configurable TDP (cTDP)                           Не поддерживается
                        Connected Standby                                 Не поддерживается
                        Core C6 State (CC6)                               Не поддерживается
                        Digital Thermometer                               Поддерживается
                        Dynamic FSB Frequency Switching                   Не поддерживается
                        Enhanced Halt State (C1E)                         Поддерживается, Разрешено
                        Enhanced SpeedStep Technology (EIST, ESS)         Поддерживается, Разрешено
                        Frequency ID Control                              Не поддерживается
                        Hardware P-State Control                          Не поддерживается
                        Hardware Thermal Control (HTC)                    Не поддерживается
                        LongRun                                           Не поддерживается
                        LongRun Table Interface                           Не поддерживается
                        Overstress                                        Не поддерживается
                        Package C6 State (PC6)                            Не поддерживается
                        Parallax                                          Не поддерживается
                        PowerSaver 1.0                                    Не поддерживается
                        PowerSaver 2.0                                    Не поддерживается
                        PowerSaver 3.0                                    Не поддерживается
                        Processor Duty Cycle Control                      Поддерживается
                        Running Average Power Limit (RAPL)                Не поддерживается
                        Software Thermal Control                          Не поддерживается
                        SpeedShift (SST, HWP)                             Не поддерживается
                        Термодиод                                         Не поддерживается
                        Thermal Monitor 1                                 Поддерживается
                        Thermal Monitor 2                                 Поддерживается
                        Thermal Monitor 3                                 Не поддерживается
                        Thermal Monitoring                                Не поддерживается
                        Thermal Trip                                      Не поддерживается
                        Voltage ID Control                                Не поддерживается
                   
                      Функции виртуализации:
                        AMD Virtual Interrupt Controller (AVIC)           Не поддерживается
                        Decode Assists                                    Не поддерживается
                        Encrypted Microcode Patch                         Не поддерживается
                        Encrypted State (SEV-ES)                          Не поддерживается
                        Extended Page Table (EPT)                         Поддерживается
                        Flush by ASID                                     Не поддерживается
                        Guest Mode Execute Trap Extension (GMET)          Не поддерживается
                        Hypervisor                                        Нет
                        Инструкция INVEPT                                 Поддерживается
                        Инструкция INVVPID                                Поддерживается
                        LBR Virtualization                                Не поддерживается
                        Memory Bandwidth Enforcement (MBE)                Не поддерживается
                        Nested Paging (NPT, RVI)                          Не поддерживается
                        NRIP Save (NRIPS)                                 Не поддерживается
                        PAUSE Filter Threshold                            Не поддерживается
                        PAUSE Intercept Filter                            Не поддерживается
                        Secure Encrypted Virtualization (SEV)             Не поддерживается
                        Secure Virtual Machine (SVM, Pacifica)            Не поддерживается
                        SVM Lock (SVML)                                   Не поддерживается
                        Virtual Transparent Encryption (VTE)              Не поддерживается
                        Virtualized GIF (vGIF)                            Не поддерживается
                        Virtualized VMLOAD and VMSAVE                     Не поддерживается
                        Virtual Machine Extensions (VMX, Vanderpool)      Поддерживается
                        Virtual Processor ID (VPID)                       Поддерживается
                        VMCB Clean Bits                                   Не поддерживается
                   
                      Функции CPUID:
                        1 GB Page Size                                    Не поддерживается
                        36-bit Page Size Extension                        Поддерживается
                        5-Level Paging                                    Не поддерживается
                        64-bit DS Area                                    Поддерживается
                        Adaptive Overclocking                             Не поддерживается
                        Address Region Registers (ARR)                    Не поддерживается
                        Code and Data Prioritization Technology (CDP)     Не поддерживается
                        Core Performance Boost (CPB)                      Не поддерживается
                        Core Performance Counters                         Не поддерживается
                        CPL Qualified Debug Store                         Поддерживается
                        Data Breakpoint Extension                         Не поддерживается
                        Debug Trace Store                                 Поддерживается
                        Debugging Extension                               Поддерживается
                        Deprecated FPU CS and FPU DS                      Не поддерживается
                        Direct Cache Access                               Не поддерживается
                        Dynamic Acceleration Technology (IDA)             Не поддерживается
                        Dynamic Configurable TDP (DcTDP)                  Не поддерживается
                        Extended APIC Register Space                      Не поддерживается
                        Fast Save & Restore                               Поддерживается
                        Hardware Lock Elision (HLE)                       Не поддерживается
                        Hybrid Boost                                      Не поддерживается
                        Hybrid CPU                                        Не поддерживается
                        Hyper-Threading Technology (HTT)                  Не поддерживается
                        Instruction Based Sampling                        Не поддерживается
                        Invariant Time Stamp Counter                      Поддерживается
                        L1 Context ID                                     Не поддерживается
                        L2I Performance Counters                          Не поддерживается
                        Lightweight Profiling                             Не поддерживается
                        Local APIC On Chip                                Поддерживается
                        Machine Check Architecture (MCA)                  Поддерживается
                        Machine Check Exception (MCE)                     Поддерживается
                        Memory Configuration Registers (MCR)              Не поддерживается
                        Memory Type Range Registers (MTRR)                Поддерживается
                        Model Specific Registers (MSR)                    Поддерживается
                        NB Performance Counters                           Не поддерживается
                        Page Attribute Table (PAT)                        Поддерживается
                        Page Global Extension                             Поддерживается
                        Page Size Extension (PSE)                         Поддерживается
                        Pending Break Event (PBE)                         Поддерживается
                        Performance Time Stamp Counter (PTSC)             Не поддерживается
                        Physical Address Extension (PAE)                  Поддерживается
                        Platform Quality of Service Enforcement (PQE)     Не поддерживается
                        Platform Quality of Service Monitoring (PQM)      Не поддерживается
                        Process Context Identifiers (PCID)                Поддерживается
                        Processor Feedback Interface                      Не поддерживается
                        Processor Trace (PT)                              Не поддерживается
                        Restricted Transactional Memory (RTM)             Не поддерживается
                        Self-Snoop                                        Поддерживается
                        Time Stamp Counter (TSC)                          Поддерживается
                        Time Stamp Counter Adjust                         Не поддерживается
                        Turbo Boost                                       Поддерживается, Разрешено
                        Turbo Boost Max 3.0                               Не поддерживается
                        Virtual Mode Extension                            Поддерживается
                        Watchdog Timer                                    Не поддерживается
                        x2APIC                                            Не поддерживается
                        XGETBV / XSETBV OS Enabled                        Поддерживается
                        XSAVE / XRSTOR / XSETBV / XGETBV Extended States  Поддерживается
                        XSAVEOPT                                          Поддерживается

                Прикреплённый файлПрикреплённый файлcpuid.png (83,4 Кбайт, скачиваний: 94)

                p.s. Думаю, пока снова разделять тему :lol:
                  Цитата Jin X @
                  p.s. Думаю, пока снова разделять тему

                  Не не не - норм тема! Вон Core-i7 фильтрует датабазы - это нужное дело.
                  А если еще он потом подгонит сорцы по изысканиям - ваще будет православненько! :lol:
                    Цитата JoeUser @
                    А если еще он потом подгонит сорцы

                    без проблем, только пока без AMD но можно добавлять
                    поиск табличный, и без степпинга - мне нужно было определить только архитектуру:
                    ExpandedWrap disabled
                      format   pe console
                      include 'win32ax.inc'
                      entry    start
                      ;---------
                      .data
                      table      dd   0x006d,dohan, 0x006e,yonah, 0x006f,conroe,0x00f2,netburst
                                 dd   0x1067,wolf,  0x106a,bloom, 0x106e,lynn,  0x206c,gulf
                                 dd   0x2065,arra,  0x206e,neh,   0x206f,west,  0x3067,silver
                                 dd   0x206a,sandy, 0x206d,sandy, 0x306a,ivy,   0x306e,ivy
                                 dd   0x306c,hass,  0x306f,hass,  0x4065,hass,  0x4066,hass
                                 dd   0x306d,broad, 0x4067,broad, 0x406f,broad, 0x5066,broad
                                 dd   0x406e,sky,   0x5065,sky,   0x506e,sky,   0x00f4,pres
                                 dd   0x506c,apollo,0x806e,kaby,  0x906e,coffe, 0x706a,gemini
                                 dd   0x406a,merri, 0x406c,charry,0x406d,avoton,0x5067,phi
                                 dd   0x506c,brox,  0x506a,moor,  0x506f,denver,0x606e,cougar
                      tableLen   =    ($ - table)/8
                       
                      dohan      db   'Dothan',0
                      yonah      db   'Yonah',0
                      conroe     db   'Conroe',0
                      netburst   db   'Netburst',0
                      pres       db   'Prescott',0
                      wolf       db   'Wolfdale',0
                      bloom      db   'Bloomfield',0
                      lynn       db   'Lynnfield',0
                      gulf       db   'Gulftown',0
                      arra       db   'Arrandale',0
                      neh        db   'Nehalen',0
                      west       db   'Westmere',0
                      silver     db   'Silvermont',0
                      sandy      db   'Sandy-Bridge',0
                      ivy        db   'Ivy-Bridge',0
                      hass       db   'Haswell',0
                      broad      db   'Broadwell',0
                      sky        db   'Sky-Lake',0
                      apollo     db   'Apollo-Lake',0
                      kaby       db   'Kaby-Lake',0
                      coffe      db   'Coffe-Lake',0
                      gemini     db   'Gemini-Lake',0
                      merri      db   'Merrifield',0
                      charry     db   'Charry View',0
                      avoton     db   'Avoton',0
                      phi        db   'Phi-Lnights',0
                      brox       db   'Broxton',0
                      moor       db   'Moorefield',0
                      denver     db   'Denverton',0
                      cougar     db   'Cougar-Montain',0
                      unk        db   'Unknown',0
                      buff       db    0
                      ;//---------
                      .code
                      start:     mov     eax,1
                                 cpuid
                                 push    eax           ;
                                 shr     eax,4         ; степпинг не нужен
                                 xchg    eax,ebx       ; EBX = Family/Model
                       
                                 mov     esi,table     ; таблица
                                 mov     ecx,tableLen  ; её длина
                      @@:        lodsd                 ; ищем код в таблице..
                                 cmp     ebx,eax
                                 je      @found
                                 add     esi,4
                                 loop    @b
                                 mov     esi,unk       ; прокол
                                 jmp     @prn          ;
                      @found:    mov     esi,[esi]     ; иначе: взять адрес строки
                      @prn:      pop     eax           ;        ..и код
                                cinvoke  printf,<10,'CPUID code: %X --> %s',0>,eax,esi
                       
                                cinvoke  gets,buff
                                cinvoke  exit,0
                      ;//**********************************
                      section '.idata' import data readable
                      library  msvcrt,'msvcrt.dll'
                      import   msvcrt, printf,'printf',exit,'exit',gets,'gets'
                      ExpandedWrap disabled
                        CPUID code: 206A7 --> Sandy-Bridge

                      Угадал :)

                      Добавлено
                      У меня такой вопрос, кстати.
                      Функция eax=1 для cpuid всегда существует?
                      Или бывает такое, что есть только eax=0 ?
                      Или минимум вообще где-то ещё дальше единицы (скажем, eax=3)?
                        Не мог пройти мимо и не соптимизировать таблицу :)

                        ExpandedWrap disabled
                          format   pe console
                          include 'win32ax.inc'
                          entry    start
                          ;---------
                          .data
                           
                          archtable  dw   0x006d, 0x006e, 0x006f, 0x00f2, 0x1067, 0x106a, 0x106e, 0x206c
                                     dw   0x2065, 0x206e, 0x206f, 0x3067, 0x216a, 0x206d, 0x316a, 0x306e
                                     dw   0x316c, 0x316f, 0x4165, 0x4066, 0x316d, 0x4167, 0x416f, 0x5066
                                     dw   0x416e, 0x5165, 0x506e, 0x00f4, 0x506c, 0x806e, 0x906e, 0x706a
                                     dw   0x406a, 0x406c, 0x406d, 0x5067, 0x506c, 0x506a, 0x506f, 0x606e
                                     ; 0x?1?? - флаг повтора строки (т.е. когда имя архитектуры для следующего кода то же)
                          archtablelen =  ($-archtable)/2
                           
                          archnames:
                          doеhan     db   'Dothan',0
                          yonah      db   'Yonah',0
                          conroe     db   'Conroe',0
                          netburst   db   'NetBurst',0
                          wolfdale   db   'Wolfdale',0
                          bloomfield db   'Bloomfield',0
                          lynnfield  db   'Lynnfield',0
                          gulftown   db   'Gulftown',0
                          arrandale  db   'Arrandale',0
                          nehalem    db   'Nehalem',0
                          westmere   db   'Westmere',0
                          silvermont db   'Silvermont',0
                          sandybridge db  'Sandy Bridge',0
                          ivybridge  db   'Ivy Bridge',0
                          haswell    db   'Haswell',0
                          broadwell  db   'Broadwell',0
                          skylake    db   'Skylake',0
                          prescott   db   'Prescott',0
                          apollolake db   'Apollo Lake',0
                          kabylake   db   'Kaby Lake',0
                          coffeelake db   'Coffee Lake',0
                          geminilake db   'Gemini Lake',0
                          merrifield db   'Merrifield',0
                          cherryview db   'Cherry View',0
                          avoton     db   'Avoton',0
                          phiknights db   'Phi Knights',0
                          broxton    db   'Broxton',0
                          moorefield db   'Moorefield',0
                          denverton  db   'Denverton',0
                          cougarmount db  'Cougar Mountain',0
                          unknown    db   'Unknown',0
                          ;//---------
                          .code
                          start:     mov     eax,1
                                     cpuid
                                     push    eax
                                     shr     eax,4            ; Stepping не нужен
                                     and     ah,0xF0          ; Type тоже не нужен
                                     xchg    ebx,eax          ; EBX = Family/Model
                           
                                     cld
                                     mov     edi,archnames    ; имена микроархитектур
                                     mov     esi,archtable    ; таблица
                                     mov     edx,archtablelen ; кол-во элементов таблицы
                                     xor     eax,eax          ; обнуляем старшую часть EAX
                          .next:     lodsw
                                     mov     ecx,eax          ; CH and 1 = флаг повтора строки
                                     and     ah,0xF0          ; удаляем флаг повтора строки
                                     cmp     ebx,eax          ; проверяем код из таблицы
                                     je      .found
                                     shr     ch,1             ; проверяем флаг повтора строки
                                     jc      @F               ; та же строка
                                     salc                     ; AL = 0
                                     repne scasb              ; пропускаем строку (ECX достаточно велик)
                          @@:        dec     edx
                                     jnz     .next
                          .found:
                                     pop     eax              ; код Family/Model/Stepping
                                    cinvoke  printf,<'CPUID code: %X --> %s',10>, eax, edi
                           
                                    cinvoke  getch
                                    cinvoke  exit,0
                          ;//**********************************
                          section '.idata' import data readable
                          library  msvcrt,'msvcrt.dll'
                          import   msvcrt, printf,'printf',exit,'exit',getch,'_getch'
                        Поправил так же опечатки в названиях, типа Nehalen → Nehalem, Coffe → Coffee, Lnights → Knights, Montain → Mountain, Charry → Cherry.
                        Вообще, есть вопросы по поводу некоторых названий. К примеру, Cherry View, как я понял, это вообще планшет, Moorefield - смартфон, а Avoton - какое-то серверное название в микроархитектуре Silvermont. А вот Goldmont, Tremont, Ice Lake, Tiger Lake и пр. нет в списке вообще.
                        https://en.wikipedia.org/wiki/List_of_Intel...roarchitectures

                        core-i7, откуда этот список?

                        Добавлено
                        Плюс, есть микроархитектуры, а есть кодовые имена. К примеру, есть кодовые имена Sandy Bridge и Ivy Bridge, оба они относятся к микроархитектуре Sandy Bridge.
                        https://en.wikipedia.org/wiki/List_of_Intel_codenames
                        Короче, минимум поллитра нужно :D
                        Сообщение отредактировано: Jin X -
                          Цитата Jin X @
                          Или минимум вообще где-то ещё дальше единицы (скажем, eax=3)?

                          EAX=0 же возвращает максимум:
                          ExpandedWrap disabled
                                and     eax,0
                                cpuid
                               cinvoke  printf,<10,'Max old: 0x0000000%X',0>,eax
                                mov     eax,0x80000000
                                cpuid
                               cinvoke  printf,<10,'Max new: 0x%X',0>,eax

                          Цитата Jin X @
                          А вот Goldmont, Tremont, Ice Lake, Tiger Lake и пр. нет в списке вообще.

                          поэтому я и просил, чтобы отписали свои данные...
                          в манах Интела по оптимизации - там вообще всего 6 архитектур

                          Цитата Jin X @
                          откуда этот список?

                          см.линк в сообщении #5 (вчера добавил)

                          Цитата Jin X @
                          Поправил так же опечатки в названиях,

                          сенкью ;)
                          Сообщение отредактировано: core-i7 -
                            Цитата core-i7 @
                            EAX=0 же возвращает максимум
                            Это понятно.
                            Мне интересно, есть ли смысл проверять этот максимум на значение >= 1 или меньше, чем 1 не бывает, т.е. EAX=1 всегда работает?

                            p.s. Skylake вот так пишется, слитно.
                              Цитата Jin X @
                              т.е. EAX=1 всегда работает?

                              наверно..
                              если-уж предоставляют максимум, значит должны все работать в этом диапазоне
                                Вопрос не про диапазон, а про минимальное значение EAX.
                                Бывает ли такое, что только EAX=0 работает, а EAX=1 нет?

                                Добавлено
                                Ну и про 0x80000001 тоже интересно, конечно...
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0641 ]   [ 20 queries used ]   [ Generated: 25.06.21, 10:23 GMT ]