Delphi Basm

Тема в разделе "WASM.BEGINNERS", создана пользователем Night, 17 авг 2011.

  1. Night

    Night New Member

    Публикаций:
    0
    Регистрация:
    17 авг 2011
    Сообщения:
    1
    Здравствуйте, пытаюсь вставить в свой софт asm вставки, ускорит ли это быстродействие программы?

    И проверьте пожалуйста правильность того как я переписал на асм
    Код (Text):
    1. procedure bconnect(bSock:TSocket;bAddr:TSockAddr;bSize:Integer);
    2. asm
    3.   push bSock
    4.   push bAddr
    5.   push bSize
    6.   call connect
    7. end;
    8.  
    9. function bSocket(s1,s2,s3:integer):TSocket;
    10. asm
    11.   push s1
    12.   push s2
    13.   push s3
    14.   call Socket
    15. end;
    16.  
    17. procedure bSend(S:TSocket;s1:String;len:Integer);
    18. asm
    19.   push S
    20.   push s1
    21.   push len
    22.   push 0
    23.   call send
    24. end;
    25.  
    26. function bRecv(S:TSocket; r:array of ansichar;size:Integer):Integer;
    27. asm
    28.   push S
    29.   push r
    30.   push size
    31.   push 0
    32.   call recv
    33. end;
    34.  
    35. procedure bCloseSocket(S:TSocket);
    36. asm
    37.   push S
    38.   call CloseSocket
    39. end;
     
  2. Artem_N

    Artem_N Artem N

    Публикаций:
    0
    Регистрация:
    1 мар 2009
    Сообщения:
    74
    Какой код для этих функций генерирует компилятор если убрать asm-вставки?..
     
  3. bug1z

    bug1z New Member

    Публикаций:
    0
    Регистрация:
    27 дек 2008
    Сообщения:
    228
    по моему такая "оптимизация" - это как то не нормально :)
     
  4. reserved

    reserved New Member

    Публикаций:
    0
    Регистрация:
    11 янв 2011
    Сообщения:
    19
    не оптимизировано :)
    параметры передавай через указатели. в твоем случаи ты дублируешь данные.
    вместо TSockAddr нужно передать указатель на структуру т.е объяви как PSockAddr, от string вообще избався она тянет с собой кучу не нужного кода) замени на pchar, с array of ansichar тоже самое.
     
  5. leo

    leo Active Member

    Публикаций:
    0
    Регистрация:
    4 авг 2004
    Сообщения:
    2.542
    Адрес:
    Russia
    Такие бесполезные вставки\приставки могут только замедлить. Лучше плюнь на это дело и "не майся дурью" ;)
     
  6. Apocalypse

    Apocalypse New Member

    Публикаций:
    0
    Регистрация:
    25 май 2011
    Сообщения:
    16
    В этом случае не будет быстродействия, если бы ты с памятью работал там, то тогда да, а так хз, лишний код только делаешь. Под отладчиком посмотри как тот же connect вызывается, он вообще через stdcall вроде как идет, а ты еще процедуре параметры передаешь, в общем - лишнее.