На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела Visual Basic: Общие вопросы
Здесь обсуждаются вопросы по языку Visual Basic 1-6 (а так же по схожим языкам, как, например, PowerBASIC).
Вопросы по Visual Basic .NET (это который входит в состав Visual Studio 2002/2003/2005/2008+, для тех, кто не в курсе) обсуждаются в разделе .NET.

Обратите внимание:
1. Прежде чем начать новую тему или отправить сообщение, убедитесь, что Вы не нарушаете правил форума!
2. Обязательно воспользуйтесь поиском. Возможно, Ваш вопрос уже обсуждали. Полезные ссылки приведены ниже.
3. Темы с просьбой выполнить какую-либо работу за автора в этом разделе не обсуждаются. Студенты, вам сюда: ПОМОЩЬ СТУДЕНТАМ!
4. Используйте теги [ code=vba ] ...текст программы... [ /code ] для выделения текста программы подсветкой.
5. Помните, здесь телепатов нет. Формулируйте свой вопрос максимально грамотно и чётко: Как правильно задавать вопросы
6. Запрещено отвечать в темы месячной (и более) давности, без веских на то причин.

Полезные ссылки:
user posted image FAQ Сайта user posted image FAQ Раздела user posted image Кладовка user posted image Наши Исходники user posted image API-Guide user posted image Поиск по Разделу user posted image MSDN Library Online user posted image Google

Ваше мнение о модераторах: user posted image SCINER, user posted image B.V.
Модераторы: SCINER, B.V.
Страницы: (3) 1 2 3  все  ( Перейти к последнему сообщению )  
> Ассемблеровские вставки
    я тут начал разбор полетов с компилятором c2.exe
    вот, что пока из этого выходит:

    Сперва ОБЯЗАТЕЛЬНО прочтите Readme!
    Прикреплённый файлПрикреплённый файлvb2asm.zip (1.51 Кбайт, скачиваний: 163)
      Цитата
      BYTE _stdcall TestByte( BYTE a, LPBYTE b )

      maxim84_, у тебя эта ф-я экспортировалась ?? не верю...
      вот так должно экспортироваться
      ExpandedWrap disabled
        extern "C" __dllspec(dllexport) __stdcall TestByte( BYTE a, LPBYTE b )

      И действительно, если кому то нужны вставки на асме пусть пишет длл на С, не очень удобно конечно, не не менее,
      чем писать вставки на асме...

      А вообще, чего вам сдался этот асм, это ж отстой, только для понта разве что... реального применения практически нет... рельно полезных асм вставок единицы, и все они уже написанны до нас...
        Цитата
        рельно полезных асм вставок единицы, и все они уже написанны до нас...


        Вот если бы они ещё волялись всюду :)
          Цитата
          А вообще, чего вам сдался этот асм, это ж отстой, только для понта разве что... реального применения практически нет... рельно полезных асм вставок единицы, и все они уже написанны до нас...

          а, например, узнать тактовую частоту процессора и вообще можно много чего узнать
            Цитата
            а, например, узнать тактовую частоту процессора и вообще можно много чего узнать

            Ага, много всего, только это по большому счёту бесполезная информация...

            Асмовые вставки, насколько я знаю в основном используют в графике...
            Цитата
            Вот если бы они ещё волялись всюду

            ExpandedWrap disabled
              __inline void MyFtoL(int *i, float f )
              {
                __asm fld f;
                __asm mov edx, I
                __asm fistp [edx];
              }


            ExpandedWrap disabled
              /*********************************************************************
              ulSqrt.cpp
               
              Copyright (C) 1999, 2000 NVIDIA Corporation
              This file is provided without support, instruction, or implied
              warranty of any kind.  NVIDIA makes no guarantee of its fitness
              for a particular purpose and is not liable under any circumstances
              for any damages or loss whatsoever arising from the use or inability
              to use this file or items derived from it.
               
              Comments:
              *********************************************************************/
              #include <stdio.h>
              #include <math.h>
              #include <windows.h>
               
              static float _0_47 = 0.47f;
              static float _1_47 = 1.47f;
               
              float __fastcall ulrsqrt(float x)
              {
                DWORD y;
                float r;
                _asm
                {
                  mov     eax, 07F000000h+03F800000h // (ONE_AS_INTEGER<<1) + ONE_AS_INTEGER
                  sub     eax, x
                  sar     eax, 1
               
                  mov     y, eax                      // y
                  fld     _0_47                       // 0.47
                  fmul    DWORD PTR x                 // x*0.47
               
                  fld     DWORD PTR y
                  fld     st(0)                       // y y x*0.47
                  fmul    st(0), st(1)                // y*y y x*0.47
               
                  fld     _1_47                       // 1.47 y*y y x*0.47
                  fxch    st(3)                       // x*0.47 y*y y 1.47
                  fmulp   st(1), st(0)                // x*0.47*y*y y 1.47
                  fsubp   st(2), st(0)                // y 1.47-x*0.47*y*y
                  fmulp   st(1), st(0)                // result
                  fstp    y
                  and     y, 07FFFFFFFh
                  
                }
                r = *(float *)&y;
                // optional
                r = (3.0f - x * (r * r)) * r * 0.5f; // remove for low accuracy
                return r;
              }
               
              /*
                  sqrt(x) = x / sqrt(x)
              */
               
              float __fastcall ulsqrt(float x)
              {
                return x * ulrsqrt(x);
              }


            ExpandedWrap disabled
                  inline unsigned __int64 GetCycleCount(void)
                  {
                      _asm _emit 0x0F
                      _asm _emit 0x31
                  }

            аналог GetTickCount, но гораздо точнее
            ещё где то было :) вообще если хорошенько поискать...
              Цитата
              Асмовые вставки, насколько я знаю в основном используют в графике...


              Ну... я бы несказал, что в графике... Чаще всего в вирях :ph34r:
                SmK, да экспортировалось!! и все работет могу dll'ку выложить.
                И не надо обсерать асем, асем это - "основа". я вот что хочу сказть по поводу асма, если не умеешь на нем писать как нужно, то и будет отстоем:) да листинг сдоровенный.

                я считаю лючше интегрировать уж стразу C++, тогда больше толку будет. но это мое мнение.:)

                Добавлено
                слушай Sciner, а зачем
                Цитата

                цитата из Readme!!!.txt
                ASM-код всех модулей, классов, контролов и форм проекта
                Сообщение отредактировано: maxim84_ -
                  незнаю :huh:
                    Цитата maxim84_ @ 17.11.04, 19:38
                    SmK, да экспортировалось!! и все работет могу dll'ку выложить.
                    И не надо обсерать асем, асем это - "основа". я вот что хочу сказть по поводу асма, если не умеешь на нем писать как нужно, то и будет отстоем:) да листинг сдоровенный.

                    я считаю лючше интегрировать уж стразу C++, тогда больше толку будет. но это мое мнение.:)

                    Добавлено
                    слушай Sciner, а зачем
                    Цитата

                    цитата из Readme!!!.txt
                    ASM-код всех модулей, классов, контролов и форм проекта

                    например, чтобы скомпилировать код на асме. Прога тогда msvbvm60.dll е будет требовать, наверное...
                      miksayer, не много не понел
                      Ну да, будет, конечно поскольку вставки в VB проекте!! или ты про что то другое?

                      SCINER, а зачем тогда парился? просто так? ты что то про PB говорил, не почается?мне кажеться просто стоит скомпелировать асемовским компилем и вырезать нужную вставку и вставить там где эта вставка на VB. Другой вопрос как это сделать? можно выризать диапазон адресов. я тык пытался, видно не фига в адрес не попал. нужно работать по принцепу вирей. где они свой код вписывают в нужные адриса.
                      Сообщение отредактировано: maxim84_ -
                        Цитата
                        SmK, да экспортировалось!! и все работет могу dll'ку выложить.

                        Выкладывай, и дллку и исходник :)

                        Цитата
                        И не надо обсерать асем

                        И не думал... Просто знаю много людей, которые хотят программировать на асме только потому, что это круто, хотят научиться писать вирусы, хотят быть кул хацкерами... конечно нихрена они не напишут, но все равно как то раздражает такая самоуверенность.
                          не понел. Товарищи модераторы, в чем дело? тема не закрыта.
                          Сообщение отредактировано: maxim84_ -
                            Дело во флейме. Интересно читать результаты, а не разборки по поводу личных отношений к асму. Тема не закрыта. Сообщения не удалены, а пока скрыты.
                              maxim84_, так а сейчас в чём вопрос состоит? вроде и Ты и Sciner прдложили варианты...
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0646 ]   [ 16 queries used ]   [ Generated: 2.05.24, 14:49 GMT ]