Hát nekem így valami nem stimmel.
Addig rendben van, hogy 55h-el és AAh-el kiemelem a páratlan és a páros biteket de mitõl fog a sorrendjük ilyenné változni ? :
- b0,b2,b4,b6 ---> b0,b4,b2,b6
- b1,b3,b5,b7 ---> b1,b5,b3,b7
Ugyanis papíron a jobb oldali a helyes, ahogy mondtad. De én azt a sorrendet semmilyen tologatással nem tudom elérni.
Csináltam Spred-el egy spritét, amiben ilyen színek vannak:
1,2,x,x,x,x,x,x,x,x,x,x,x,x,x,x
7,7,x,x,x,x,x,x,x,x,x,x,x,x,x,x
1,7,x,x,x,x,x,x,x,x,x,x,x,x,x,x
...
Papíron számolva, jobbról indítva a számozást (b7,b6,b5,b4,b3,b2,b1,b0):
Az elsõ byte értéke 84h, 10000100
P1: 10000100 AND 10101010 = 10000000 ---> b1,b5,b3,b7 = 0001 (1) kék, oké
P2: 10000100 AND 01010101 = 00000100 ---> b0,b4,b2,b6 = 0010 (2) piros, oké
A 9. byte értéke FCh, 11111100
P1: 11111100 AND 10101010 = 10101000 ---> b1,b5,b3,b7 = 0111 (7) szürkésfehér, oké
P2: 11111100 AND 01010101 = 01010100 ---> b0,b4,b2,b6 = 0111 (7) szürkésfehér, oké
A 17. byte értéke D4h, 11111100
P1: 11010100 AND 10101010 = 10000000 ---> b1,b5,b3,b7 = 0001 (1) kék, oké
P2: 11010100 AND 01010101 = 01010100 ---> b0,b4,b2,b6 = 0111 (7) szürkésfehér, oké
Remélem nem írtam el valamit, már jojózik a szemem a bináris számoktól
Szóval így papíron kijön minden, de milyen utasításokkal érem el, hogy a b0 után a b4-et vegye ki és rakja a b0 mellé majd a b2-est és végül a b6-ost ? Mert a sima rotálástól biztos nem.
Egyenlõre Delphiben próbálom megjeleníteni az spr fázisait, de sok pakolászás kell, hogy a helyes bitsorrend legyen. Az már szinte mellékes, hogy a Delphi beépített SHL és SHR utasítása nem ér semmit mert a kimenõ bitek nem jönnek be a másik oldalon hanem egyszerûen elvesznek. Ha ilyesmit akarok, be kell rakni a byte-ot egy word-be vagy egy longint-be és a HI/LO utasításokkal vagdosni az eredményt...
Valami nagyon fontosat biztos nem tudok, ha win alatt ilyen nehézkesen érek el ereményt
