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

Ассеблерные вставки в C++ - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Блок-схема курсовой http://www.cyberforum.ru/cpp-beginners/thread1059575.html
Люди, очень нужна ваша помощь!!! Мне нужно сделать блок-схему моей курсовой работы. Код программы я сделал, а вот с блок-схемой не получается. Сроки сдачи через 1 день. кто может помогите буду...
C++ Узнать, какие согласные буквы не входят в данную строку Помготе исправить ошибку мелочная но уже голову сломал задача такая : дана строка узнать какие согласние буквы не входят в него и вывести их на екран вот мой код #include<iostream>... http://www.cyberforum.ru/cpp-beginners/thread1059566.html
магазин на файлах C++
Задано файл, що містить інформацію про товари у вигляді назва товару ціна за одиницю товару кількість одиниць. Дописати в кінець файлу рядок вигляду: Усього товару наявно на суму *****.** грн.
C++ найти ошибку
Конечный автомат: (сумма разность целых неотрицательных чисел) неправильно высчитывает. в чем тут ошибка? //рекурсия #include <iostream> #include <stdio.h> #include <stdlib.h> #include <math.h>...
C++ Перевести программу из Паскаля в С++.Дан список фамилий.Найти однофамильцев http://www.cyberforum.ru/cpp-beginners/thread1059532.html
program Project2; {$APPTYPE CONSOLE} uses SysUtils; var f,f2:textfile; A:array of string; i,n,j:integer; begin
C++ Виртуальные функции Здравствуйте, помогите пожалуйста с вопросом: Заданный порожденный класс, содержащий две функции по таким именно именами, как и в базовом классе. При описании базового класса одна из этих функций... подробнее

Показать сообщение отдельно
gale
0 / 0 / 0
Регистрация: 28.12.2013
Сообщений: 12

Ассеблерные вставки в C++ - C++

28.12.2013, 19:59. Просмотров 540. Ответов 9
Метки (Все метки)

Потребовалось написать простенький, по идее код, в котором замерялось бы количество тактов процессора,
затрачиваемых на определенный процесс.
Почти сразу это вылилось в такой код:

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
#include <iostream>
using namespace std;
int main()
    {
 
    long long t1=0,t2=0;
    long long delta_t=0;
 
    __asm("CPUID"); //  "out-of-order"
    __asm("RDTSC");
    __asm("mov DWORD PTR[t1], eax");
    __asm("mov DWORD PTR[t1 + 4], edx");
 
 
 
    //Здесь выполняется код, время исполнения которого и замеряется
 
 
     __asm("CPUID");
     __asm("RDTSC");
     __asm("mov DWORD PTR[t2], eax");
     __asm("mov DWORD PTR[t2 + 4], edx");
 
 
    delta_t = t2 - t1;
    cout << delta_t;
    }
На первый взгляд правильно.
Однако после попытки откомпилировать код дебаггер ругнулся:
Ассеблерные вставки в C++

В ассемблере x86 разбираюсь слабо.

Компилятор - gcc
IDE - CodeBlocks
Процессор - Intel Core 2 Duo

В чем моя ошибка?
Единственный момент - замер должен производиться именно с использованием RDTSC.

P.S.
С наступающим!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru