• úvod
  • témata
  • události
  • tržiště
  • diskuze
  • nástěnka
  • přihlásit
    registrace
    ztracené heslo?
    LITTLELIAssembler
    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*
    Kliknutím sem můžete změnit nastavení reklam