-
Data: 2015-10-06 10:26:55
Temat: Re: asm - przesuwanie wektora bajtow
Od: "Radoslaw Szwed" <r...@p...fm> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]Użytkownik "szemrany" <s...@o...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.
Następne wpisy z tego wątku
- 06.10.15 12:06 M.M.
Najnowsze wątki z tej grupy
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
- Ada 2022 Language Reference Manual to be Published by Springer
- Press Release - AEiC 2023, Ada-Europe Reliable Softw. Technol.
- Ada-Europe - AEiC 2023 early registration deadline approaching
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2023
- Ile cykli zajmuje mnożenie liczb 64-bitowych?
Najnowsze wątki
- 2024-06-10 wyobrazcie sobie ze
- 2024-06-10 malowanie samochodu
- 2024-06-10 News from Poland
- 2024-06-10 Czy na pewno będą CŁA na chińskie samochody?
- 2024-06-09 Dlaczego w Polsce sie nic nie udaje, na przykładzie niebieskiego lasera a teraz perskowitów
- 2024-06-09 Dlaczego w Polsce sie nic nie udaje, na przykładzie niebieskiego lasera a teraz perskowitów
- 2024-06-09 Wykrywanie przerwy w długim przewodzie zakopanym w ziemi.
- 2024-06-09 Czemu news.chmurka.nwt jest taki wolny?
- 2024-06-11 Funbox 3.0 zakres adresów DHCP
- 2024-06-11 Re: Funbox 3.0 zakres adresów DHCP
- 2024-06-09 Miernik szybkości netu
- 2024-06-11 Panele PV w pionie (prawie).
- 2024-06-11 czy ta grupa żyje?
- 2024-06-11 Warszawa => Senior React Native Developer <=
- 2024-06-11 Gdańsk => Kierownik Działu Spedycji Międzynarodowej <=