🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.asm
5 messages
5 total messages Started by =?ISO-8859-2?Q?A Fri, 09 Apr 2010 23:00
Podobna zagadka
#2128
Author: =?ISO-8859-2?Q?A
Date: Fri, 09 Apr 2010 23:00
3 lines
121 bytes
Dane jest pole o adresie pocz�tku w ESI i d�ugo�ci w bajtach w ECX.
Nale�y odwr�ci� kolejno�� BIT�W.

Re: Podobna zagadka
#2136
Author: Bernard
Date: Sun, 11 Apr 2010 22:21
23 lines
474 bytes
On 2010-04-09 23:00, Andrzej Gra�y�ski wrote:
> Dane jest pole o adresie pocz�tku w ESI i d�ugo�ci w bajtach w ECX.
> Nale�y odwr�ci� kolejno�� BIT�W.

xlop:
     lodsb
	mov	ah, al
	and	ax, 0x55aa
	shr	al, 1
	aad	2
	mov	ah, al
	and	ax, 0x33cc
	shr	al, 2
	aad	4
	ror	al, 4
     xchg    al, [esi + ecx - 2]
	; i tu to samo, co powy�ej - 9 instrukcji
     mov    [esi - 1], al
     sub    ecx, 2
     ja    xlop

razem 23 instrukcje na 1 obieg p�tli

Re: Podobna zagadka
#2138
Author: =?ISO-8859-2?Q?A
Date: Sun, 11 Apr 2010 23:37
26 lines
621 bytes
Bernard pisze:
> On 2010-04-09 23:00, Andrzej Gra�y�ski wrote:
>> Dane jest pole o adresie pocz�tku w ESI i d�ugo�ci w bajtach w ECX.
>> Nale�y odwr�ci� kolejno�� BIT�W.
>
> xlop:
>     lodsb
>     mov    ah, al
>     and    ax, 0x55aa
>     shr    al, 1
>     aad    2
>     mov    ah, al
>     and    ax, 0x33cc
>     shr    al, 2
>     aad    4
>     ror    al, 4
>     xchg    al, [esi + ecx - 2]
>     ; i tu to samo, co powy�ej - 9 instrukcji
>     mov    [esi - 1], al
>     sub    ecx, 2
>     ja    xlop
>
> razem 23 instrukcje na 1 obieg p�tli

A nie lepiej u�y� BT, BTS i BTR?

Re: Podobna zagadka
#2140
Author: =?ISO-8859-2?Q?A
Date: Mon, 12 Apr 2010 16:14
23 lines
370 bytes
Andrzej Gra�y�ski pisze:
> Dane jest pole o adresie pocz�tku w ESI i d�ugo�ci w bajtach w ECX.
> Nale�y odwr�ci� kolejno�� BIT�W.

SHL ECX,3
JZ  @@Done
MOV EBX,ECX
XOR EDX,EDX

@@Loop:
   DEC EBX
   BT [ESI],EBX
   SETC AL
   BT [ESI], EDX
   SBB AL,0
   JZ  @@Ancora
   BTC [ESI],EBX
   BTC [ESI],EDX
@@Ancora:
   INC  EDX
   LOOP @Loop
@@Done:

Re: Podobna zagadka
#2142
Author: Bernard
Date: Mon, 12 Apr 2010 20:36
38 lines
1031 bytes
On 2010-04-12 16:14, Andrzej Gra�y�ski wrote:
> Andrzej Gra�y�ski pisze:
>> Dane jest pole o adresie pocz�tku w ESI i d�ugo�ci w bajtach w ECX.
>> Nale�y odwr�ci� kolejno�� BIT�W.
>
> SHL ECX,3
> JZ @@Done
> MOV EBX,ECX
> XOR EDX,EDX
>
> @@Loop:
> DEC EBX
> BT [ESI],EBX
> SETC AL
> BT [ESI], EDX
> SBB AL,0
> JZ @@Ancora
> BTC [ESI],EBX
> BTC [ESI],EDX
> @@Ancora:
> INC EDX
> LOOP @Loop
> @@Done:


Przyjmuj�c optymistycznie, �e kod jest wolny od b��d�w, otrzymujemy 4
obiegi p�tli na bajt wektora, ka�dy obieg �rednio po 9 instrukcji z
nieprzewidywalnym skokiem (JZ), czyli 36 instrukcji na bajt z o�mioma
nieprzewidywalnymi skokami o koszcie kilkudziesi�ciu instrukcji ka�dy.
Ka�dy bajt b�dzie przy tym odczytywany �rednio 12 razy i zapisywany 4 -
sporo.

Moje rozwi�zanie ma 11.5 instrukcji na bajt bez skoku zale�nego od
danych, po jednym odczycie i zapisie na bajt. Wolne pojedyncze
instrukcje AAD mo�na zast�pi� szybkimi parami shl + or.

c.b.d.o. :)

Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads