Keresés

Aktív témák

  • t3rm1nat0r

    csendes tag

    válasz t3m1nat0r #9 üzenetére

    A logikai műveleteknél ezeket az alaputasításokat már említettem. Ott azt mondtam, hogy maszkokkal lehet a biteket manipulálni. Ez annyit jelent, hogy egy 8 bites regiszterhez 8 bitet adunk meg, amiken egyenként végrehajtódik az, amit az imént leírtam.
    Esszerint 8 darab A és B bemeneti érték van. A bitek bármilyen állapotban lehetnek.
    /terhesek azért nem xD /

    10101100 A
    11001101 B
    10001100 out = A AND B

    10101100 A
    11001101 B
    11101101 out A OR B

    10101100 A
    11001101 B
    01100001 out A XOR B /vagy EOR/

    Igy látszik a logikája a műveleteknek, ha decimálisan vagy hexában írom fel, akkor már csak gyakorlott szem érti, mi miért történik.

    0xac A
    0xcd B
    0x8c out = A AND B

    Vannak még a forgatások és léptetések. Itt csak annyi történik, hogy jobbra vagy balra eltolódik bitenként a regiszter
    10101100 A
    01011000 out ROTATE LEFT /a rövidítés processzor függő/

    10101100 A
    01010110 out RIGHT
    11010110 out RIGHT a legfelső bit ismétlődik. Mivel INT tipusnál az tárolja az előjelet, ezért így a szám negatív marad.

    Az A értéke decimálisan 172, jobbra forgatás után 86. Ez a fele, a forgatást osztás helyett lehet használni, ha 2 hatványával osztunk.
    Régebbi hardveres megoldásoknál ezért találkozunk lépten nyomon olyan számokkal, hogy 2 4 8 16 32 64 128 256 512 1024 ... mert ez az osztást /és ha balra forgatok, akkor szorzást/ sokkal egyszerűbben valósítható meg hardverileg, és még gyorsabb is a működése, mint majd kiderül.

    Be fogok mutatni egy teljes összeadó arámkört működés közben, ahol látszani fog, miért eszik olyan sok időt egy hagyományos processzor, és miért számol például egy geforce sokkal gyorsabban.

  • t3m1nat0r

    csendes tag

    válasz t3m1nat0r #2 üzenetére

    A c64-ben már a 6510 processzor volt, ami tartalmaz néhány kiegészítést.
    De ez alapjában ugyan az a processzor.

  • t3m1nat0r

    csendes tag

    válasz t3m1nat0r #4 üzenetére

    Ahhoz, hogy fizikailag ez működjön, át kell alakítani ezt a 16 bitet 65536 bitté, hiszen a memóriát ennyi vezetéken lehet elérni.

    Igazából ennek elég egyszerű a megoldása. A bináris fákhoz hasonlóan felosztható a memória is. A legfelső bit ha 0, akkor a baloldali memória aktív, ha 1 akkor a jobb. A következő bit ezt a két részt osztja további darabokra.

Aktív témák