-
Data: 2017-08-26 17:44:52
Temat: Re: Co jest nie tak z C++ (było: Rust)
Od: fir <p...@g...com> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]W dniu sobota, 26 sierpnia 2017 16:04:34 UTC+2 użytkownik AK napisał:
> Użytkownik "fir" <p...@g...com> napisał:
>
> > pewnie pomysle o optymalizacji jak ktos zacznie z sensem asemblowac tym
asemblerem
>
> Nikt nie zacznie, bo zwykly popularny kompilator C zrobi to o wiele wydajniej niz
twoj assembler.
>
> > na razie jakos tego zapotrzebowania wogole nie widze ;c
>
> .. co mnie w ogole nie dziwi.. czy ty widzisz cokolwiek dalej niz czubek wlasnego
nosa :) ?
>
> > gorzej ze nie che mi sie wklepywac tych wszystkich menmonikow, glownie chodzi o
te wersje
> > na charow i shortow, AX AH AL BX BL BH etc,
> > zreszta chyba nawet zwykle skoki albo nawet mov eax maja wersje skrocone (tj
takie ktorych
> > operand nie jes 32 bitowy tylko jakies krotsze wersje 16 bit 8 bit)..
>
> no to d..pa ! :)
>
> np. ...na stosowaniu tych wersji skrocoonych polegala kiedys optymalizacja kodu
assemblerowego.
>
> np powszechnie stosowalo sie (i kompiltaory C tez to wtedy juz umialy):
>
> push cs
> call near ptr addr_fun
>
> zamiast mniej wydajnego ;
>
> call far ptr addr_fun
>
> Takich "sztuczek" bylo wiele.
> Ja np. stosowalem dosc czesto:
>
> mov bx, sp
>
> i indeksowalen stos bx-em
>
> zamiast standarowej wtedy "rozbiegowki" funkcji:
>
> push bp
> mov bp, sp
> ...
> pop bp
>
> ale nie miejsce i pora. Raczej ciekawostka historyczna. z czasow x86
>
> PS: Dobrym assemblerowcem bedziesz, gdy bedziesz mial w kapuscie
> wryte zarowno mnemoniki jak i czasy wykonania rozkazow (no ok, dzis
> juz nie tak - cale szczescie - wazne:). Juz nic nie pamietam prawie
> ale CF (far ret) i C3 (near ret) wrylo sie w stary leb.
> Robilo wrazenie gdy (slawek zapewne pamieta/potwierdzi) pisalo sie
> w niejakim programie "debug" programy "z palca" szesnastkowo :)
> PS1: Kiedys rozpoznawalo sie prawiczka w ASM86 gdy pisal mov ax, 0
> miast xor ax,ax. Dzis (i znow cale szczecie:) przestalo i to miec znaczenie.
>
dzisiaj te instrukcja na AX AH i AL nie sa specjalnie krytycznie potrzebne,
pytanie czy wspolczesne kompilatory je nawet wogole generują (i pytanie jest raczej
ZTCW czy generuja je w ilosci mikro czy wogole)
moglby moze miec sens gdyby pomagaly w optymalizacji ale chyba tego nie robia (wogole
dzisaj gdy
cpu wogole nie jest krytyczne tylko memory bandwidth (MB) to co by sie
liczylo to pewnie prostota - i moze ewentualnie 'compactness' w sensie
pewnie lepsza specjalizowana instrukcja do iloczyny skalarnego dwu float4 niz jej
brak) (a to i tak wszystko w tyle za MB)
ew tylko przydalyby sie pewnie
mov byte ptr [eax], value
(bo inaczej pisanie poszczegolnych bajtow byloby utrudnione)
ew
mov eax, byte ptr [ecx]
do czytania pojedynczych bajtow
(ta granulacja bajtowa wogole przydaje sie chyba tylko do ascii
i kompletnie niczego wiecej -
to jak wspominalem chyba by znaczylo ze nalezaloby zrezygnowac z ascii na rzecz
sensownego unicode
i przerzucic sie na 32bitowe bajty]
(wynika tez chyba z tego ze zasadniczo by byc przyjaznym nowoczesnemu hardware
wypadaloby nielubic chara (przynajmniej w jego typowych zastosowaniach - [ew lubic
go tylko w unikalnych sytuacjach gdy pozwala zmniejszyc memory bandwidth (bo
teoretycznie moglby) ale nie wiem czy te sztuczki by dzialaly) ]
w sumie nie wiadomo co jest bardziej pozyteczne - korzysc wynikajaca z malego
rozmiaru pamieci na teksty wynikajaca z ciagle masowego uzywania charow
czy niekorzys wynikajaca z calego babrania sie z unalignmentami w procku (ciezko mi
powiedziec bo
faktem jest ze procek jest bardziej skomplikowany ale ewna korzysc ze
spakowania tekstow tez jest ;c )
Następne wpisy z tego wątku
- 26.08.17 19:30 AK
- 26.08.17 19:32 Adam M
- 26.08.17 22:29 M.M.
- 27.08.17 08:07 AK
- 27.08.17 10:18 slawek
- 27.08.17 10:53 fir
- 27.08.17 12:21 AK
- 27.08.17 13:47 fir
- 27.08.17 13:53 M.M.
- 27.08.17 13:56 fir
- 27.08.17 14:56 fir
- 27.08.17 22:20 g...@g...com
- 28.08.17 16:29 Adam M
- 28.08.17 17:29 M.M.
- 28.08.17 17:49 Adam M
Najnowsze wątki z tej grupy
- C++. Podróż Po Języku - komentarz
- "Wuj dobra rada" z KDAB rozważa: Choosing the Right Programming Language for Your Embedded Linux Device
- Nowa ustawa o ochronie praw autorskich - opis problemu i szkic ustawy
- Alg. kompresji LZW
- Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- 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
Najnowsze wątki
- 2025-04-10 Totaliztyczny obowiązek naprawy maszyn i urządzeń
- 2025-04-11 Lokalizator
- 2025-04-11 Kierunkowskaz w chwili zmiany kierunku
- 2025-04-11 Re: Kompensacja mocy biernej przy 230VAC
- 2025-04-10 Totaliztyczny obowiązek naprawy maszyn i urządzeń
- 2025-04-11 Warszawa => Asystent Sprzedaży <=
- 2025-04-11 Środa Wielkopolska => SAP FI/CO Konsultant wewnętrzny <=
- 2025-04-11 Gliwice => Business Development Manager - Network and Network Security
- 2025-04-11 Warszawa => Konsultant ds. sprzedaży <=
- 2025-04-11 Warszawa => SQL Developer <=
- 2025-04-11 Białystok => NMS System Administrator <=
- 2025-04-11 Poznań => Konsultant wdrożeniowy Comarch XL (Logistyka, WMS, Produkc
- 2025-04-11 Wrocław => Konsultant wdrożeniowy Comarch XL/Optima (Księgowość i
- 2025-04-11 Rudno => IT network administrator <=
- 2025-04-11 Bieruń => Spedytor Międzynarodowy (handel ładunkami/prowadzenie flo