BG Development


Страници: (4) « първа ... 2 3 [4]   ( Първото ново мнение ) Reply to this topicStart new topicStart Poll

> C Is Not a Low-level Language
ici
Публикувано на: 15-08-2018, 09:13
Quote Post


Group Icon
Име: Ивайло Илчев ики
Група: VIP
Ранг: Почетен член

Мнения: 15616
Регистриран на: 06.06.04



Безобразно е въпреки всичко. Попаднах на https://fresh.flatassembler.net/fossil/repo...1c7f1b57cd26926 - Тук има всички лоши практики за които плюват C - restrict/to/from, . Между другото какво прави този код? Защо ebx+4*edx+TChunkIndex.len? Какво има в edx?

CODE
.sizeok:
       mov     al, [esi]
       inc     esi
       cmp     al, 0
       je      .endofstring
       mov     [edi+ecx], al
       inc     ecx
       jmp     .copyloop

.endofstring:
       mov     dword [ebx+4*edx+TChunkIndex.next], $00ffffff

       cmp     edx, [.hString]
       jne     @f
       not     cl
@@:
       mov     byte  [ebx+4*edx+TChunkIndex.len],  cl

.finish:
       pop     edi esi edx ecx ebx eax
       return
endp


--------------------
Както и при християнската религия, така и при социализмът, най-лошата реклама за идеята са нейните последователи. - Джордж Оруел
PMEmail PosterUsers Website
Top
dvader
Публикувано на: 15-08-2018, 09:37
Quote Post


Group Icon
Име:
Група: VIP
Ранг: Почетен член

Мнения: 4128
Регистриран на: 12.07.05



Ти най-главното не попита - какво е предимството на
CODE
mov     al, [esi]
inc     esi
пред
CODE
lodsb


Това мнение е било редактирано от dvader на 15-08-2018, 09:38


--------------------
I find your lack of faith disturbing
PM
Top
SuN
Публикувано на: 15-08-2018, 09:50
Quote Post


Group Icon
Име:
Група: Администратор
Ранг: Почетен член

Мнения: 6872
Регистриран на: 27.01.05



Момчета, това не се компилира за арм.


--------------------
Копирай лесно ударено и - ѝ Ѝ
Замърсяване на въздуха в София - http://aqicn.org/city/bulgaria/sofia/druzhba/
PMEmail Poster
Top
wqw
Публикувано на: 15-08-2018, 12:01
Quote Post


Group Icon
Име: Владимир Висулчев
Група: VIP
Ранг: Почетен член

Мнения: 5830
Регистриран на: 10.06.04



Малко странна ми е тая статия, че не споменава SPMD (single program, multiple data), примерно това:

https://github.com/ispc/ispc/
https://ispc.github.io/

С този extension се хвалят, че с леки промени по оригиналния C сорс ефективно подменят "execution and data model"-а и получават брутален performance boost през SSE2, SSE4, AVX1, AVX2, AVX512, etc. векторизации. Принципно ispc е LLVM базиран (няма общо с другите интелски компилатори) и мисля е основен консуматор на AVX codegen-а им.

Специално искам да видя jf как го чете този "диалект" на ASM (то дори не е диалект, а си е направо x86_64) дето го генерира ispc:
CODE
      vmovups   1856(%rsp), %ymm3
      vdivps    %ymm2, %ymm3, %ymm13
      vmulps    %ymm13, %ymm1, %ymm1
      vdivps    1792(%rsp), %ymm1, %ymm4
      vmulps    608(%rsp), %ymm13, %ymm1
      vdivps    1376(%rsp), %ymm1, %ymm11
      vmulps    %ymm4, %ymm4, %ymm1
      vmulps    %ymm11, %ymm11, %ymm2
      vaddps    %ymm2, %ymm1, %ymm1
      vmulps    %ymm13, %ymm13, %ymm2
      vaddps    %ymm1, %ymm2, %ymm1
      vrsqrtps  %ymm1, %ymm

cheers,
</wqw>


--------------------
PMEmail PosterUsers Website
Top
johnfound
Публикувано на: 15-08-2018, 17:07
Quote Post


Group Icon
Име:
Група: VIP
Ранг: Почетен член

Мнения: 6763
Регистриран на: 27.05.04



QUOTE (ici @ 15-08-2018, 10:13)
Безобразно е въпреки всичко. Попаднах на https://fresh.flatassembler.net/fossil/repo...1c7f1b57cd26926


А бе ici, да беше погледнал директорията – /trash/ - в нея са събрани сорсове, които по някаква причина не съм искал да изтрия, но са си именно боклук – не се използват в проекта въобще. Най-вероятно не могат и да се компилират. icon_lol.gif icon_lol.gif icon_lol.gif icon_lol.gif

@wqw: Някъде да съм твърдял че всеки асемблерски код е четлив??? Особено пък генериран от компилатор. icon_evil.gif Но същото важи и за всички езици от високо ниво. Или ще твърдиш, че всеки код на C е четлив?

@dvader: Изпълнява се по-бързо на някои процесори на Интел. И е по-четливо, защото ясно илюстрира намеренията на автора. Особено пък ако се четат едновременно два стринга и примерно наоколо има нещо като:
CODE

mov ah, [edi]
inc edi


Това мнение е било редактирано от johnfound на 15-08-2018, 17:09


--------------------
asm32 - Приложно програмиране на асемблер.
Tox: 2B446ADCEC7E180CD4C59391D81D4CAB3E99CA7AE767DB3AB45AF976F8A2050FF071DDB733F1
PMEmail PosterUsers Website
Top
ici
Публикувано на: 15-08-2018, 17:48
Quote Post


Group Icon
Име: Ивайло Илчев ики
Група: VIP
Ранг: Почетен член

Мнения: 15616
Регистриран на: 06.06.04



Трябва да си много извратен за да кажеш че това е разбираем код. Освен това е ужасно грозен и е пълен със шум. Махни коментарите и се опитай да разбереш кода. Може да си съдереш гъза, ама кода не става разбираем и четлив. Сега за езиците от високо ниво да твърдиш че не били ясни - това е твой проблем и САМО ти мислиш така. Твоя код, ако нямаш целият сорс, е много вероятно нищо да не разбереш.


--------------------
Както и при християнската религия, така и при социализмът, най-лошата реклама за идеята са нейните последователи. - Джордж Оруел
PMEmail PosterUsers Website
Top
1 потребители преглеждат тази тема в момента (1 гости, 0 анонимни потребители)
Потребители, преглеждащи темата в момента:

Topic Options Страници: (4) « първа ... 2 3 [4]  Reply to this topicStart new topicStart Poll

 


Copyright © 2003-2018 | BG Development | All Rights Reserved
RSS 2.0