Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > pl.comp.programming > #27635

Re: asm - przesuwanie wektora bajtow

From "Radoslaw Szwed" <radekszwed@pochta.fm>
Newsgroups pl.comp.programming
Subject Re: asm - przesuwanie wektora bajtow
Date 2015-10-06 10:26 +0200
Organization Aioe.org NNTP Server
Message-ID <mv00lo$qjl$1@speranza.aioe.org> (permalink)
References <a6cvewd1yimk$.1h0av09ee1pjl$.dlg@40tude.net>

Show all headers | View raw


Użytkownik "szemrany" <szemrany@offline.off> napisał w wiadomości news:a6cvewd1yimk$.1h0av09ee1pjl$.dlg@40tude.net...
> Witam
>
> Potrzebuję przesunąć tablicę/wektor bajtów w lewo o zadaną liczbę bitów. Po
> jakimś tam czasie czytania i prób zrobiłem prockę opartą o instrukcję RCL
> przesuwająca o jeden bit:
>
>
>   mov ebx, x  // liczba bajtów w wektorze
>   mov eax, end_byte  // adres ostatniego elementu
>   clc
>   @@loop:
>   mov cl, byte ptr [eax]
>   rcl cl, 1
>   mov byte ptr [eax], CL
>   dec eax
>   dec ebx
>   jne @@loop
>
> Teraz, gdy chcę przesunąć o 3 bity to wykonuję ten kod w pętli trzy razy.
>
> Czy ten kod można zoptymalizować bardziej?
> Czy można to zrobić inaczej, bez RCL?

Zrobione inaczej bez RCL. Proszę sprawdzić powinna działać prawidłowo nie zdążyłem przetestować
(skończyła się przerwa śniadaniowa :). Przesuwa od 1 do 8 bitów.

start:
    mov     ebx, 8          ; przesuwamy o 3 bity (2^3)
    mov     edi, 4          ; dlugsc wektora 4 bajty
    mov     esi, offset y   ; adres wektora
    xor     ecx, ecx

next:
    xor     eax, eax
    mov     al, byte ptr [esi]
    mul     ebx
    or      al, cl
    mov     byte ptr [esi], al
    mov     cl, ah
    inc     esi
    dec     edi
    jne     next

Jest wolniejsza w porównaniu z poprzednia jeżeli przesuwamy o 1 bit w innym przypadku jest szybsza.

Back to pl.comp.programming | Previous | NextPrevious in thread | Find similar


Thread

asm - przesuwanie wektora bajtow szemrany <szemrany@offline.off> - 2015-10-04 15:10 +0200
  Re: asm - przesuwanie wektora bajtow Wojciech Muła <wojtek.mula@gmail.com> - 2015-10-05 00:05 -0700
    Re: asm - przesuwanie wektora bajtow szemrany <szemrany@offline.off> - 2015-10-05 21:24 +0200
  Re: asm - przesuwanie wektora bajtow "M.M." <mmarszik@gmail.com> - 2015-10-05 03:06 -0700
    Re: asm - przesuwanie wektora bajtow szemrany <szemrany@offline.off> - 2015-10-05 15:04 +0200
      Re: asm - przesuwanie wektora bajtow "M.M." <mmarszik@gmail.com> - 2015-10-05 08:06 -0700
        Re: asm - przesuwanie wektora bajtow bartekltg <bartekltg@gmail.com> - 2015-10-05 17:19 +0200
          Re: asm - przesuwanie wektora bajtow "M.M." <mmarszik@gmail.com> - 2015-10-05 10:39 -0700
  Re: asm - przesuwanie wektora bajtow "Bogdan (bogdro)" <bogdan@poczta.gazeta.pl> - 2015-10-05 21:15 +0200
    Re: asm - przesuwanie wektora bajtow szemrany <szemrany@offline.off> - 2015-10-05 21:23 +0200
      Re: asm - przesuwanie wektora bajtow "M.M." <mmarszik@gmail.com> - 2015-10-05 12:47 -0700
      Re: asm - przesuwanie wektora bajtow slawek <fake@fakeemail.com> - 2015-10-06 06:55 +0200
  Re: asm - przesuwanie wektora bajtow Waldek Hebisch <hebisch@antispam.uni.wroc.pl> - 2015-10-05 23:09 +0000
    Re: asm - przesuwanie wektora bajtow "M.M." <mmarszik@gmail.com> - 2015-10-06 03:06 -0700
  Re: asm - przesuwanie wektora bajtow "Radoslaw Szwed" <radekszwed@pochta.fm> - 2015-10-06 10:26 +0200

csiph-web