1. |
Re: bitcsere (mind) |
36 sor |
(cikkei) |
2. |
AL bitcsere (mind) |
14 sor |
(cikkei) |
3. |
Re: bitcsere (mind) |
31 sor |
(cikkei) |
4. |
Re: Bitcsere (mind) |
26 sor |
(cikkei) |
5. |
Re: primitiv delfi kerdes (mind) |
21 sor |
(cikkei) |
|
+ - | Re: bitcsere (mind) |
VÁLASZ |
Feladó: (cikkei)
|
On 26 Mar 98 at 6:46, > wrote:
> Akkor en adok egy kovetkezo hazifeladatot:
Nem er, hogy mindenki a listaval oldatja meg a hazi feladatat :)))
> ASM-ben kellene megcserelni az AL-ben mondjuk a 2-es es 5-os bitet.
> (Az AL tobbi bitje maradjon valtozatlan!)
> Kie lesz a leggyorsabb (legjobb) megoldas ?? :))
lea bx,cseretabla
xlat
Eleg gyors? :)) A 256 byte-os tablazat kitolteset (forditasi idoben
makrokkal termeszetesen) rad bizom :)
(Egyebkent 32 biten az xlat-nal lehet gyorsabbat is csinalni, ha az
eax regiszter tobbi byte-jat vegig 0-an tudod tartani, egy
mov al,cseretabla[eax]
utasitassal.)
Lehet azert tablazat nelkul is csinalni, nem ennyire gyorsan, de
valoszinu a legrovidebben (6 byte):
test al,(1 SHL 2) + (1 SHL 5)
jpe egyformak
xor al,(1 SHL 2) + (1 SHL 5)
egyformak:
; ha paros a paritas, akkor mindketto 0 vagy mindketto 1, nem kellett
; cserelni.
; ha paratlan a paritas, az egyik bit 0, a masik 1-es, ellenkezore
; kellett mindkettot forditani.
István
-- Istvan Marosi -- http://www.sch.bme.hu/~marosi --
-- Recosoft Ltd. -- mailto: --
|
+ - | AL bitcsere (mind) |
VÁLASZ |
Feladó: (cikkei)
|
Kuldom a legjobb megoldast!
Mivel a ket cserelendo bit 4 lehetseges kombinaciot ad ki, ezert csak ezzel a 4
esettel kell foglalkozni. A kimaszkolt 00,01,10,11 kombinacio alapjan egy
tablazatbol ki lehet olvasni a modosito maszkot. Ez mukodik tobb bitre is. Ket
bitre meg egyszerubb a megoldas. A 00 es 11 kombinaciok eseten nem szukseges
csere, hacsak a bitek szine nem mas. A 01 es 10 kombinacio a maszkolas utan
paratlan paritast ad, es ekkor mindket bitet invertalni kell:
TEST AL,00100100b
JPE @001 ; jump if parity even
XOR AL,00100100b
@001:
|
+ - | Re: bitcsere (mind) |
VÁLASZ |
Feladó: (cikkei)
|
Sziasztok LISTA!
>Latom folenyesen nyert a TEST utasitas... legalabbis mennyisegben:)
Hat..., azt nekem sikerult egy kicsit tulkomplikalni... ;-((
>Akkor en adok egy kovetkezo hazifeladatot:
Megprobalom, hatha ez jobban sikerul... :-D
>ASM-ben kellene megcserelni az AL-ben mondjuk a 2-es es 5-os bitet.
>(Az AL tobbi bitje maradjon valtozatlan!)
Tehat, tolem ennyire tellett:
8-o
Start: test al,04h
lahf
test al,20h
jz _nul5
or al,04h
jmp _ket
_nul5: and al,0fbh
_ket: sahf
jz _nul2
or al,20h
jmp _vege
_nul2: and al,0dfh
_vege:
Bye: Robi
-= Once Upon a Timer...=-
|
+ - | Re: Bitcsere (mind) |
VÁLASZ |
Feladó: (cikkei)
|
Udv!
Lenne 2 megoldasom. A gyorsasagon lehet vitatkozni, nekem nincs olyan
leirasom ami hitelt erdemlo lenne. A kiiras nem hatarozta meg a procit, igy
en csak a 286-os adottsagait hasznaltam ki.
;*****************************
mov ah, al
and ah, 00100100b
and al, 11011011b
mov cl, ah
shr ah, 3
shl cl, 3
or al, cl
or al, ah
;*****************************
mov cl, al
ror al, 3
lahf
rol cl, 3
sal al, 3
rol al, 3
sahf
sar al, 3
;*****************************
Sziasztok, Otto. mailto:
|
+ - | Re: primitiv delfi kerdes (mind) |
VÁLASZ |
Feladó: (cikkei)
|
wrote in message ...
>Namarmost hogy a fenebe tudok en ebbol gyokot vonni?
>basic rulez a=sqr(a). De ez itten nem akar mukodni. A help meg sz@rt
>se er ezugyben.
Szia!
Pedig benne van, csak az sqr az a negyzetreemeles, a gyokvonas az
sqrt. A kovetkezo program bemutatja:
procedure TForm1.FormActivate(Sender: TObject);
var a : extended;
;
Udv.Csaboca.
|
|