• úvod
  • témata
  • události
  • tržiště
  • diskuze
  • nástěnka
  • přihlásit
    registrace
    ztracené heslo?
    LITTLELIAssembler
    there are 10 types of people in the world. those who understand binary, and those who don't.
    windows bring the power of yesterday computers in nowadays
    sexy nastenka
    rozbalit záhlaví
    NECROMAN
    NECROMAN --- ---
    BLEKOTA: na ten druhy odkaz mi to hodilo Fradu warning, ale ten maunal vypada dobre. take v Linuxovem krenelu pro mips se da najit zajimave cteni
    BLEKOTA
    BLEKOTA --- ---
    NECROMAN: I mipsech vim prd, par linku ktere snad k necemu budou - http://www.eecs.harvard.edu/~ellard/Courses/cs50-asm.pdf (predpkladam ze jsi tohle uz nasel), pak dokumentace ke GASu veci (ne)specifickych pro mips (http://sourceware.org/binutils/docs/as/index.html) prip nejake informace o pouzivani inline assembleru v GCC.
    NECROMAN
    NECROMAN --- ---
    zdravim, moc toho v assembleru neumim a pokousim se napsat atomicke test&set a compare&swap pro mips procesor (pokud byste to nekdo meli hotove, dejte vedet :)

    Momentalne mam ten compare&swap podle ruznych naovdu, ale nevim, zda je dobre

    static inline native_t compare_and_swap(atomic_t *var, const native_t old_value, const native_t new_value)
    {
        native_t temp, result;
    
        asm volatile (
            ".set push\n"
            ".set noreorder\n"
    
            "   ll %[temp], %[value]\n"
            "   bne %[temp], %[old_value], 1f\n"
            "   move %[result], %[new_value]\n"
            "   sc %[result], %[value]\n"
            "   b 2f\n"        
            "1: move %[result], $0\n"
            "2: sync\n"
            
            ".set pop\n"
            : [temp] "=&r" (temp), [result] "=&r" (result), [value] "+m" ((var)->value)
            : [old_value] "r" ((old_value)->value), [new_value] "r" ((new_value)->value)
              : "memory"
          );
    
        return result;
    } 


    predevsim jsem neprisel na to, co znamenaji ty pismenka u vstupnich/vystupnich promennych, takove to =&r, +m, r, Ir a pod. any idea?
    Dale jak je to s temi labely, viel jsem vyskyt cisel+f nebo b
    znamena to jdi na cislo a to f/b je forward/backward?

    Diky za rady :)
    MIKI001
    MIKI001 --- ---
    TLUSTEC: Asi to tak dopadne. Bohuzel nikdy jsem neprisel na vkus te syntaxi co pouziva gcc. Takze spis se podivam na obaleni neceho co pouziva tu pro mne znamejsi syntaxi. V podstate neco tak jednoducheho a snadno pripojitelneho do sveho projektu co jsem si predstavoval jsem nenasel, takze je uz jedno co budu obalovat. Zda cast gcc a nebo nasm.

    Diky vsem za rady, jeste se zkusim podivat na llvm, ale i tam jsem na prvni pohled videl gcc syntaxi coz opet je pro mne spis prekazka.
    TLUSTEC
    TLUSTEC --- ---
    MIKI001: a co takto binutils, v pripade uchylky pro intelskou syntaxi nasm/ndisasm? zdrojaky to ma citelne, a pomerne snadno vyklestitelne.
    JANFROG
    JANFROG --- ---
    MIKI001: Mrkni na LLVM.
    ANT_39
    ANT_39 --- ---
    MIKI001: elfutils v sobe nejakou libasm maji. Koukam do rozhrani, a jsou tam nejake metody tykajici se jak assemblovani, tak disassemblovani. Nikdy jsem s tim ale nedelal, a co vim, tak to neni uplne dospela cast elfutils. Taky to bude (kod te libasm, stejne jako zbytek elfutils) dost uzce vazany na GCC (tj. C99 a GCC rozsireni).
    MIKI001
    MIKI001 --- ---
    Potřeboval bych z textu, který bude psaný ve formě assembleru vytvořit sekvenci bajtů, které budou přepisem strojového kódu toho zapsaného assembleru. Ideálně bych uvítal jednu metodu do které pošlu řetězec a vrátí se mě pole bajtů přeloženého assembleru. Nevíte jestli nějaký podobný projekt existuje?
    Samozřejmě můžu obalit nějaký existující assembler a volat si ho ze svého kódu, jenom jsem myslel zda neexistuje již hotová knihovna, kterou bych si pouze připojil do svého projektu v C++ a rovnou používal. Ještě taková drobnost, musí to podporovat jak x86 tak i x64.
    GUFY
    GUFY --- ---
    Zdar,

    mam naprgany simulator prociku (MCU ATmega 8), aplikačky pro to se kompilujou v AVR-GCC. Nevít někdo, jak skrze asm() posla vlastní kod 16bitové instrukce? (Potřebuju si poslat například příkaz pro vypnutí běhu procesoru, což není standardní požadavek. :) )
    LITTLELI
    LITTLELI --- ---
    sem si ani nevsiml, ze na avc je pekne povidani o mikroprocesorech
    http://www.avc-cvut.cz/avc.php?id=4835
    WENCA
    WENCA --- ---
    CABOWITZ: jo a dik za knizku o prgani v linuxu. je hezka. :)
    CABOWITZ
    CABOWITZ --- ---
    WENCA:
    _K5_:
    no ja jsem ted asi ve druhe tretine :] - na stara kolena jsem se rozhodl pouzivat zxko v audiovisualnich produkci a asm je preci je napr. na vykreslovani kruznic preci jen rychlejsi nez basic :-D. je to skvele napsana vec. paralelne nahlizim do literatury o asm pod linuxem a spousta veci je stejnych...
    WENCA
    WENCA --- ---
    CABOWITZ: cetli :)
    _K5_
    _K5_ --- ---
    CABOWITZ: četli, v originále ;-)
    CABOWITZ
    CABOWITZ --- ---
    Guide_To_Assembly_Language_Programming_In_Linux
    mimochodem elzetovu knihu bity do bytu jste necetli? vrele doporucuji i kdyz je to pro z80 :]
    ANT_39
    ANT_39 --- ---
    ten graf sam o sobe samozrejme nic nerika, zde je vic kontextu:
    http://smallcode.weblogs.us/2006/04/22/x86-machine-code-statistics/
    _BENNY
    _BENNY --- ---
    RCR
    RCR --- ---
    DAVIDOWITCH: Simecka pamatuju, ten byl dobrej...
    JAZZZ
    JAZZZ --- ---
    DAVIDOWITCH: ono to vzeslo z diskuze o prgani mikroprocesoru, kde se stale jeste na efektivitu hraje a assembler je stale rozumna volba.

    jasne ze v dnesni dobe je vyhodnejsi psat "programy" co se pousti v exploreru a jsou desne pomaly :)

    jinak co se tyce prgani v tymu, tak to neni ani tak o jazyce jako o schopnym architektovi co to spravne rozdeli na kousky ktery se delaj po jednom cloveku. moje zkusneost z RIP je, ze i kalkulacka se da udelat pomalu a blbe ve trech lidech kdyz jeden by ji mel za vecer hotovou :)
    DAVIDOWITCH
    DAVIDOWITCH --- ---
    JAZZZ: To je Shimi?
    Na hrani je assembler dobrej, na neco co se musi fakt jako udelat, zaplatit a nasadit bohuzel ne.
    JAZZZ
    JAZZZ --- ---
    DAVIDOWITCH: assemblerovej kod s komentarem na kazdy radce to jisti ;)
    Kliknutím sem můžete změnit nastavení reklam