Avatar billede viht Nybegynder
31. oktober 2002 - 21:20 Der er 12 kommentarer og
1 løsning

Assembler oversættelse fra http://www.codeproject.com/system/came

Er der nogen af jer der har oversat nogle af metoderne derfra til GCC kompilérbar assembler? Jeg har prøvet med metoden RetrieveCPUIdentity(), men umiddelbart uden held. Jeg byttede om på rækkefølgen i kaldene, da jeg læser at&t compileren har kilden på lhs og destinationen på rhs. Registrene har jeg prefixet med % altså %eax, %ebx osv.
Jeg vil sætte stor pris på noget god hjælp her, således jeg derudfra også kan læse syntaksen til at oversætte nogle af de andre metoder.
Avatar billede viht Nybegynder
31. oktober 2002 - 21:21 #1
URLen er vist ikke helt vist; den er http://www.codeproject.com/system/camel.asp :o)
Avatar billede soreno Praktikant
31. oktober 2002 - 22:48 #2
kan du ikke selv arbejde videre med dette:
#include <stdio.h>

void printVendor()
{
    unsigned long eax;
    unsigned long ebx;
    unsigned long ecx;
    unsigned long edx;
 
    //CPUID
    asm(".byte 0x0f, 0xa2" : "=a" (eax), "=b" (ebx), "=c" (ecx), "=d" (edx) : "a" (0));
    char vendorID[64] = "";
    int i=0;
    int ch=0;
    for(i=0;i<4;i++)
    {
        vendorID[ch] = ebx >> (8*i);
        ch++;
    }

    for(i=0;i<4;i++)
    {
        vendorID[ch] = edx >> (8*i);
        ch++;
    }

    for(i=0;i<4;i++)
    {
        vendorID[ch] = ecx >> (8*i);
        ch++;
    }

    printf("vendor[%s]\n", vendorID); 
}

void printFamilyModel()
{
    unsigned long eax;
    unsigned long ebx;
    unsigned long ecx;
    unsigned long edx;
    int model;
    int family;

    //CPUID
    asm(".byte 0x0f, 0xa2" : "=a" (eax), "=b" (ebx), "=c" (ecx), "=d" (edx) : "a" (1));
    model = (eax >> 4) & 0xf;
    family = (eax >> 8) & 0xf;

    printf("family[%i] model[%i]\n", family, model);
 
}

int main(int argc, char **argv)
{
    printVendor();
    printFamilyModel();
   
    return 0;
}

det kompilerer fint med mingw.
Avatar billede soreno Praktikant
31. oktober 2002 - 22:50 #3
da jeg lavede ovenstående brugte jeg http://www.ka9q.net/code/cpuid/cpuid-3.3.tar.gz som skabelon - måske den også kunne hjælpe dig ?
Avatar billede viht Nybegynder
31. oktober 2002 - 23:35 #4
Smukt, du forbliver et skridt foran.
Avatar billede borrisholt Novice
01. november 2002 - 09:35 #5
skal du have mere at vide om din CPu har jeg en masse Delphi kode ...

Jens B
Avatar billede viht Nybegynder
01. november 2002 - 10:07 #6
Det vil jeg da gerne kigge på.
Avatar billede borrisholt Novice
01. november 2002 - 10:15 #7
så skal jeg bruge en mail adr ...

Jens B
Avatar billede soreno Praktikant
01. november 2002 - 10:17 #8
jeg kunne også godt tænke mig at se koden,
eksp@soreno.dk
Avatar billede viht Nybegynder
01. november 2002 - 10:30 #9
jesper@jollerbarn.dk
Avatar billede borrisholt Novice
01. november 2002 - 10:59 #10
Avatar billede borrisholt Novice
01. november 2002 - 11:00 #11
Skulle nogen oversætte den til C++ vil jeg gerne have den tilbage.

Jens B
Avatar billede borrisholt Novice
01. november 2002 - 11:04 #12
Tilgængæld vil jeg gerne stille min viden om hhv. delphi og C++ tilrådighed ...

Når i går i gang med at porte så stil spm her inde på eksperten, så skal jeg besvare dem efter beste evne 1

Jens B
Avatar billede soreno Praktikant
01. november 2002 - 13:25 #13
jens b>>
jeg må sige at foreskellen mellem kamelprogrammet og dit er ikke stort - så jeg ser ikke lige nogen grund til at porte det (ud over for fornøjelsens skyld.. :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester