Форум программистов, компьютерный форум, киберфорум
Наши страницы
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
Шульпин
0 / 0 / 0
Регистрация: 10.06.2014
Сообщений: 10
1

Команда CPUID

04.06.2015, 13:53. Просмотров 924. Ответов 1
Метки нет (Все метки)

Задали задание найти параметры процессора через команду CPUID, все нашел как я думал,но на процессоре Intel(у меня AMD), стал не правильно выводится кэш первого и третьего уровня,в чем проблема?
Пишу в vs2008 ассемблерными вставками в си.
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
_asm //Cache1
    {
    mov eax, 0x80000005
    cpuid
 
    shr ecx, 24 
    mov CacheLevel1, ecx
    }   
_asm //Cache2
    {
    mov eax, 0x80000006
    cpuid
 
    shr ecx, 16 
    mov CacheLevel2, ecx
    }   
_asm //Cache3
    {
    mov eax, 0x80000006
    cpuid
    shr ecx, 18 
    mov CacheLevel3, ecx
    }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.06.2015, 13:53
Ответы с готовыми решениями:

Не работает CPUID
Почему может не поддерживаться CPUID? Использую TASM. Проверяю поддержку...

Определить наличие математического сопроцессора (с использованием cpuid)
Помогите написать программу определяющая наличие математического сопроцессора с...

Как определить семейство процессора, используя команду cpuid?
Здравствуйте! Очень нужна ваша помощь. Как написать ассемблерную вставку для...

Получение системной информации через использование команды CPUID
Добрый день, очень нужна помощь с задачей: Получение системной информации через...

Инструкция cpuid: получить полное название модели процессора
как с помощью это инструкции получить полное название модели...

1
maxillion
273 / 183 / 52
Регистрация: 25.12.2012
Сообщений: 616
04.06.2015, 17:52 2
Для процессоров Intel с80000005H - зарезервирован и должен возвращать нули. Нужно находить через EAX = 02H, в (Intel® 64 and IA-32 Architectures Software Developer’s Manual Volume 2A), есть таблица Table 3-21 и рядом описания к ней, по этой таблицы находим значения cache.

Добавлено через 11 минут
Для cpuid в vs2008 есть спец. функции.
C++
1
2
3
4
5
6
7
8
9
10
11
#include "stdafx.h"
#include <intrin.h>
#include <Windows.h>
 
int _tmain(int argc, _TCHAR* argv[])
{   
    DWORD buff[4];  
    __cpuid((int*)buff,0x80000006);
    printf("%d \n", buff[2]>>16);
    return 0;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.06.2015, 17:52

CPUID
Доброго времени суток! Я сейчас делаю лабораторную работу, где нужно вывести...

Данные о процессоре (CPUID)
Я работаю на fasm. Препод говорил делать через асемблерную вставочку на с++. но...

Обработка прерывания "ошибочная команда" или "неверная команда"
Привет форумчани! Очень нужна ваша помощь... Нужно написать программу,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru