• úvod
  • témata
  • události
  • tržiště
  • diskuze
  • nástěnka
  • přihlásit
    registrace
    ztracené heslo?
    LITTLELIAssembler
    _BENNY
    _BENNY --- ---
    CHOPAIN: nemas nahodou v kodu prohozeny src a dest? neboli, nezapisujes nahodou do src kam se zapisovat nema?
    CHOPAIN
    CHOPAIN --- ---
    Zdravim teprve s Assemblerem zacinam tak se mi nesmejte :d potreboval bych poradit jak zapsat do C++ koveho pole char*

    asi takle
    void up_strcpy(char * dest, char * src)
    {
    _asm{
    mov eax,dest
    mov ebx,src
    mov ecx,0

    mov dl,[eax + ecx *1] //zde se do dl nacte spravne 1 prvek dest
    mov [ebx +ecx *1],dl //Access violation writing location
    .
    .
    .

    Zkousel jsem to uz vseliak ale furt nemuzu prijit na to co delam spatne. Přitom u int* pole nebyl problem. (samozřejme jsem ale počítal s 4 bajty ne s 1).

    Diky moc za radu.
    MICA
    MICA --- ---
    Máte někdo zkušenosti se softěním pro Freescale HCS08 případně Motorola 68000 assembler? Potřeboval bych podarit s přeprasením *.asm zdrojáku přeloženého z Cčka :(
    BLEKOTA
    BLEKOTA --- ---
    NECROMAN: Fraud warning u jak se zda indenticke kopie dokumentace ke GASu???
    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 :]
    Kliknutím sem můžete změnit nastavení reklam