delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2006/03/07/19:31:21

X-Authentication-Warning: delorie.com: mail set sender to djgpp-bounces using -f
From: "Rod Pemberton" <do_not_have AT sorry DOT bitbucket DOT cmm>
Newsgroups: comp.os.msdos.djgpp
Subject: Re: application that retrieve the number of cpu cycle, junk 'cycle' after expression
Date: Tue, 7 Mar 2006 19:25:33 -0500
Organization: Info Avenue Internet Services, LLC
Lines: 51
Message-ID: <dul8a0$aicf$1@news3.infoave.net>
References: <1141737752 DOT 454796 DOT 204020 AT v46g2000cwv DOT googlegroups DOT com>
NNTP-Posting-Host: c-68-60-59-250.hsd1.mi.comcast.net
X-Trace: news3.infoave.net 1141777536 346511 68.60.59.250 (8 Mar 2006 00:25:36 GMT)
X-Complaints-To: abuse AT infoave DOT net
NNTP-Posting-Date: Wed, 8 Mar 2006 00:25:36 +0000 (UTC)
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2800.1437
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1441
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp
Reply-To: djgpp AT delorie DOT com

"mames" <matteomamei AT yahoo DOT it> wrote in message
news:1141737752 DOT 454796 DOT 204020 AT v46g2000cwv DOT googlegroups DOT com...
> hi to everyone is the first time i write but i looking for an assembler
>
> problem and i don't manage to find a solution. i've found on internet
> an application that retrieve the number of cpu cycle. it's wrote in
> assembler and i don't manage to use its.
>
> double GetMachineCycleCount()
> {
>    double cycles;
>    __asm("cpuid");
>    __asm("rdtsc");
>    __asm("mov %ebx,OFFSET cycles");
>    __asm("mov ebx,%eax");
>    __asm("mov ebx+4,%edx");
>    return cycles;
> }
>
> when i compile the application (i'm using devc++) it notice me this
> error:
> error....junk 'cycle' after expression
>
> what is it mean?
> thanks a lot to everyone

(I didn't realize you were cross posted, so I'll post here too.)

I'm not familiar with devc++ (GCC based), but I am familiar with GAS(GCC)
and WASM.  It appears that you are mixing GAS and MASM style intructions.

For GAS (and hopefully devc++), it'd look more like this:

unsigned long long GetMachineCycleCount()
{
    unsigned long long cycles;
    __asm__ __volatile__(
                "cpuid\n"
                "rdtsc\n"
                :"=A"(cycles)
              );
    return cycles;
}

Notice that the returned type isn't 'double'.


Rod Pemberton


- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019