Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Вставка на ассемблере - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Найти количество строк в максимальном множестве попарно непохожих строк заданной матрицы http://www.cyberforum.ru/cpp-beginners/thread255162.html
Мир всем, помогите понять суть задания: "Две строки матрицы назовем похожими, если совпадают множества чисел встречающихся в этих строках. Найти количество строк в максимальном множестве попарно...
C++ Очередь и дек С++ Ребят, помогите пожалуйста сделать небольшую программу, ну просто горит(((. :wall: Разработать программу на С++, для реализации основных операций над полу-статичными структурами данных (добавление,... http://www.cyberforum.ru/cpp-beginners/thread255159.html
вхождения символа в строках C++
В данной строке S вставить символ c1 после каждого вхождения символа c2.
сильно грузит процесор C++
господа програмисты написал программу но она очень сильно грузит процесор,с чего я это взял?объясняю-во первых на windows 7 есть гаджет индикатор ЦП вот без моей программы он показывает от 3 до 7 %...
C++ Двумерный массив передать через **arr http://www.cyberforum.ru/cpp-beginners/thread255101.html
Добрый день. Поискал похожие темы, кое-что нашел, но у меня проблема в том, что мне нужно передать уже созданный двумерный массив int arr в функцию с прототипом void f(int **arr) Передать пустоту...
C++ Вывод поясняющего текста для заданного термина Написать с Помощью КЛАССОВ нужно !!! Текст помощи для не которой программы организован в виде линейного списка Каждая компонента текста помощи содержит термин (слово) и текст,содержащий пояснение... подробнее

Показать сообщение отдельно
Ma3a
Эксперт С++
618 / 462 / 31
Регистрация: 28.01.2011
Сообщений: 605
10.03.2011, 23:30
Я пользуюсь студией, так что пример под нее, если что(__asm ключевое слово). Ничего подключать специально, чтобы сделать ассемблерную вставку, не нужно, просто оформляете asm-код в __asm { } и __asm (для однострочной вставки) блоках.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <iostream>
 
int main()
    {
    // измерения для времени(тиков процессора)
    long long t1,t2;
 
    __asm{
        CPUID // страхуемся от "out-of-order" исполнения инструкций
        RDTSC // делаем первый замер
        mov DWORD PTR[t1], eax // сохраняем 64-битный результат из EDX:EAX
        mov DWORD PTR[t1 + 4], edx // в t1
        }
 
    // что нужно тестить на время исполнения
    for(int i = 0; i < 100; ++i)
        std::cout << "hey\n";
    
    __asm{ // делаем аналогичное для второго замера
        CPUID
        RDTSC
        mov DWORD PTR[t2], eax
        mov DWORD PTR[t2 + 4], edx
        }
    // количество тиков процессора, сделанное за время выполнения теста
    long long delta_t = t2 - t1;
    std::cout << delta_t;
    }
4
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru