-Поиск по дневнику

Поиск сообщений в rss_forum_sources_ru

 -Подписка по e-mail

 

 -Постоянные читатели

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 29.07.2007
Записей:
Комментариев:
Написано: 80


Определение микроархитектуры CPU

Понедельник, 29 Июня 2020 г. 19:41 + в цитатник
core-i7:
Цитата JoeUser @
А если еще он потом подгонит сорцы

без проблем, только пока без AMD но можно добавлять
поиск табличный, и без степпинга - мне нужно было определить только архитектуру:
    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'

https://forum.sources.ru/index.php?showtopic=419088&view=findpost&p=3833472

Метки:  

 

Добавить комментарий:
Текст комментария: смайлики

Проверка орфографии: (найти ошибки)

Прикрепить картинку:

 Переводить URL в ссылку
 Подписаться на комментарии
 Подписать картинку