Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
0 / 0 / 1
Регистрация: 22.08.2013
Сообщений: 70
1

Ассемблерная вставка

28.02.2014, 14:34. Показов 1570. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток, пытаюсь пытаюсь узнать поддерживает ли мой процессор тепловые сенсоры код не компилируется ругается на конфликт размеров операндов в "mov Supported,eax". Я ассемблер знаю плохо но по идее в eax должен быть или 0 или 1 и тогда все должно работать ли я все таки неправ?

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include <iostream>
#include <stdlib.h>
 
 
bool SensorsSupported()
{
bool Supported = 0;
 
_asm
{
mov eax,06
 
cpuid
 
and eax,1
 
mov Supported,eax
}
 
return Supported;
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.02.2014, 14:34
Ответы с готовыми решениями:

Ассемблерная вставка в с++
С помощью логических операций реализуйте запись битов в данной ячейки памяти, размером в 2 байта, в...

Ассемблерная вставка в c++
Как данный код написать между вставками __asm {} в c++??? Поскольку dw, db и тд не поддерживаются в...

Ассемблерная вставка
Всем доброй ночи!!! Я хочу попросить помощи в решении вот такой функции: Найти целое значение...

Ассемблерная вставка в С++
Когда в b у нас число больше 127 программа работает неправильно помогите исправить .. очень нужно...

2
Заблокирован
28.02.2014, 14:40 2
Лучший ответ Сообщение было отмечено Snak2013 как решение

Решение

Цитата Сообщение от Snak2013 Посмотреть сообщение
Я ассемблер знаю плохо но по идее в eax должен быть или 0 или 1 и тогда все должно работать ли я все таки неправ?
нет, если ты компилируешь под 32-х битную платформу, регистр EAX - 32-х битный, тоесть 4-х байтовый, тебе нужна 4-х байтовая переменная, например int.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
bool SensorsSupported()
{
    bool ret;
    int Supported = 0;
 
    _asm
    {
        mov eax,06
 
            cpuid
 
            and eax,1
 
            mov Supported,eax
    }
 
    Supported > 0 ? ret =  true : ret =  false;
    return ret;
}
1
0 / 0 / 1
Регистрация: 22.08.2013
Сообщений: 70
28.02.2014, 14:48  [ТС] 3
Спасибо помогло
0
28.02.2014, 14:48
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.02.2014, 14:48
Помогаю со студенческими работами здесь

Ассемблерная вставка на С++
Написал сегодня код. int x, y; //Исходные числа float res = 0; //Результат расчетов cin &gt;&gt; x...

Ассемблерная вставка
#include &lt;iostream&gt; #include &lt;cstdlib&gt; using namespace std; int main() { int x, y; cout &lt;&lt;...

Ассемблерная вставка c++
Добрый вечер! Как в c++ сделать ассемблерную вставку вида: if (b &gt;= 0) { Некий код } else ...

Ассемблерная вставка
Нужно заменить в русской строке похожие буквы латиницей. Ввод и вывод - на С++, всё остальное - на...

Ассемблерная вставка на С++
Добрый день, уважаемые. Столкнулся с большой проблемой когда понадобилось для увеличения скорости...

Ассемблерная Вставка
Помогите, пожалуйста! Задано массив из 4 байт. Рассматривая его, как массив из 32 бит посчитать...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru