• ú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í
    LITTLELI
    LITTLELI --- ---
    LITTLELI: s/pushf/pusfd/ a s/popf/popfd

    TREKIE: hm no zasobnik je zasobnik, fakt je, ze pri ukladani na zasobnik se deje par veci. ja se na to podivam zase vecer, trebas jeste na neco prijdu. fakt, je ze to tak jako tak bude vychazet ze stejneho algoritmu, kterym nasobi i clovek (trebas na papire), akorat ze to bude postavene na dvojkove bazi.

    jinak pokud se to bere az tak vazne, tak FLAGS je taky registr, predpokladam ze ten se do toho celkoveho poctu registru nepocita :)
    FUXOFT
    FUXOFT --- ---
    TREKIE: No jde jenom o to, schovat si na chvili nekam hodnotu carry flagu. Nebo to jde i bez toho a pokud ten carry bude 1, tak skocis nekam na konec a tam udelas rucne to posledni pricteni.


    LITTLELI: Pozor, v eax musi byt na zacatku 1, ne 0! To je ten vtip.
    TREKIE
    TREKIE --- ---
    diky za napad, ale mam takovy pocit, ze ten zasobnik funguje jako dalsi registr. prece to musi jit uplne bez nej, ne?
    LITTLELI
    LITTLELI --- ---
    FUXOFT: no maji, dokonce je tam instrukce pro rotaci dvojici 32bitovych registru.. ktera klidne muze nahradit ty dva prvni bitshifty... shld eax,ebx,1. myslis tedy takhle?

    	xor   eax,eax
    	xor   ebx,ebx
    	inc   eax
    loop:   shld  eax,ebx,1
            pushf
    	shl   ecx,1
            jnc   nc
            add   ebx,edx
            add   eax,byte 0
    nc:     popf
            jnc   loop
    

    bez zaruky
    FUXOFT
    FUXOFT --- ---
    TREKIE: Naposled jsem v assembleru delal na ZX Spectru,
    tak to napisu v takovem hodne pseudokodu. Doufam, ze ty dnesni procesory
    tyhle instrukce maji :) loop probehne 32krat.

    ; vynasobi ecx * edx, vysledek da do eax (vyssich 32 bitu) a ebx (nizsich 32)
    
            eax = 1
            ebx = 0
    loop:   bitshift ebx doleva s pretecenim do carry
            bitshift eax doleva, pricemz do praveho bitu "vtece" aktualni carry a levy bit pretece do carry
            push flagy
            bitshift ecx doleva s pretecenim do carry
            pokud neni carry, skoc na nc:
            pricti edx k ebx (coz patricne nastavi carry)
            pricti carry k eax
    nc:     pop flagy
            pokud neni carry, skoc na loop:
            END
    
    TREKIE
    TREKIE --- ---
    jo, zapomnel jsem pridat, ze to nesmi byt stupidni n*pricitani, tzn ze to musi mit linearni slozitost vzhledem k poctu bitu...
    LITTLELI
    LITTLELI --- ---
    tedy... 4 registry + flags
    LITTLELI
    LITTLELI --- ---
    ; vstupy, formule: ecx * edx
    	xor eax,eax	; cleanup
    	xor ebx,ebx	; cleanup
    	clc                    ; cleanup
    loop1:	add eax,edx
    	adc ebx,0
    	dec ecx	
    	jnz loop1
    ; vysledek ebx:eax
    


    ? ja jsem nic nepsal ani nepamatuju, to clovek uplne zasne jak najednou nevi!
    tohle je imho hodne dummy, ale zadani to snad splnuje.
    TREKIE
    TREKIE --- ---
    jak napsat nasobeni 2 32bitovych registru na ia32, vysledek ma byt 64 bitovy ve 2 registrech, nesmim pouzit instrukce mul* ani nic z sse a maji mi na to stacit nejvyse 4 32 bitove registry. umim to udelat s 5, ale pro 4 zatim moje mentalni obrazovka zustava prazdna
    LITTLELI
    LITTLELI --- ---
    Programming high-performance applications on the Cell BE processor, Part 1: An introduction to Linux on the PlayStation 3
    Overview, installation, and first programming steps
    http://www-128.ibm.com/developerworks/power/library/pa-linuxps3-1/
    WENCA
    WENCA --- ---
    Ze dekujem. :)
    KYOSUKE
    KYOSUKE --- ---
    LITTLELI
    LITTLELI --- ---
    no a jde se vyvijet :] http://www.cc65.org
    LITTLELI
    LITTLELI --- ---
    hm jinka super knizka:
    Optimizing Compilers for Modern Architectures - A Dependence Based Approarch (2001)
    LITTLELI
    LITTLELI --- ---
    vcerejsi rozhovor s kamosem:

    (00:31:19) littleli: ale ta mala cpu jako 6502 ... to je fakt vec
    (00:32:22) pg: jj, 6502 dokaze vlastne vsechno, co dneska Conroe.. akorat ji to trochu trva, no
    KYOSUKE
    KYOSUKE --- ---
    /* We're consolidating our STB products, it's your lucky day. */
    /* Come back next week when we are "Sun Microelectronics". */
    /* Remember: "Different name, same old buggy as shit hardware." */

    Je vám už doufám jasné, proč Sun nemá v lásce Linux... ;-)
    KOMPAS
    KOMPAS --- ---
    HARRY_X: on celej ten sunhme.c je takovej veselej :-)
    HARRY_X
    HARRY_X --- ---
    KOMPAS: tech hlasek v kernelu je mnohem vic takovyhle uchylnych (staci takovy grep -i fuck na zdrojacich), popr. nazvy funkci ala happy_meal_is_not_so_happy taky stoji za to :-)
    LITTLELI
    LITTLELI --- ---
    *ROFL*
    KOMPAS
    KOMPAS --- ---
    <ot>
    KYOSUKE: to mi pripomnelo linuxove lp0 on fire ^_^
    kdo neveri, at tam bezi, ac se to nezda, tato chybova hlaska mela sve opodstatneni
    </ot>
    Kliknutím sem můžete změnit nastavení reklam