Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Assembler

Страница: 1 | 2 | 3 |

 

  Вопрос: Чем ASM хуже (лучше) C\C++? Добавлено: 12.02.07 14:19  

Автор вопроса:  Visual Basic .NET 2005 Пиратская версия | Web-сайт: ex3mos.ucoz.ru
Чем ASM хуже (лучше) C\C++?
//тесты показали что лучше использовать оба языка вместе.

Ответить

  Ответы Всего ответов: 42  

Номер ответа: 1
Автор ответа:
 Morpheus



Вопросов: 224
Ответов: 3777
 Web-сайт: xury.zx6.ru
 Профиль | | #1
Добавлено: 12.02.07 14:30
Ну, для микроконтроллеров ассемблер юзать вроде как более выгодно так как он быстрее, а там скорость всё ещё решает, т.е. прога "привет мир блин" на .нет будет не 5 секунд запускаться, а с час или два :)

Ответить

Номер ответа: 2
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #2
Добавлено: 12.02.07 17:24
На ассемблере больше возможностей писать непонятный код.

Ответить

Номер ответа: 3
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #3
Добавлено: 12.02.07 19:31
Павел не писал на C++ :) www.ioccc.org форевер :)

                                  #include\
                                  <stdio.h>
                     #include                <stdlib.h>
                     #include                <string.h>

                    #define w "Hk~HdA=Jk|Jk~LSyL[{M[wMcxNksNss:"
                   #define r"Ht@H|@=HdJHtJHdYHtY:HtFHtF=JDBIl"\
                  ";DJTEJDFIlMIlM:HdMHdM=I|KIlMJTOJDOIlWITY:8Y"
                 #define S"IT@I\\@=HdHHtGH|KILJJDIJDH:H|KID"\
                "K=HdQHtPH|TIDRJDRJDQ:JC?JK?=JDRJLRI|UItU:8T"
               #define _(i,j)L[i=2*T[j,O[i=O[j-R[j,T[i=2*\
              R[j-5*T[j+4*O[j-L[j,R[i=3*T[j-R[j-3*O[j+L[j,
             #define t"IS?I\\@=HdGHtGIDJILIJDIItHJTFJDF:8J"

    #define y                  yy(4),yy(5),                yy(6),yy(7)
  #define yy(              i)R[i]=T[i],T[i ]            =O[i],O[i]=L [i]
#define Y _(0          ], 4] )_ (1 ], 5] )_ (2      ], 6] )_ (3 ], 7] )_=1
#define v(i)(      ;(( R[ i ] * _ + T [ i ];) * _ + O [ i ];) * _ + L [ i ];) *2
double b = 32  ,l ,k ,o ,B ,_ ; int Q , s , V , R [8 ], T[ 8] ,O [8 ], L[ 8] ;
#define q( Q,R ) R= *X ++ % 64 *8 ,R |= *X /8 &7 ,Q=*X++%8,Q=Q*64+*X++%64-256,
# define  p      "G\\QG\\P=GLPGTPGdMGdNGtOGlOG"   "dSGdRGDPGLPG\\LG\\LHtGHtH:"
#  define W         "Hs?H{?=HdGH|FI\\II\\GJlHJ"    "lFL\\DLTCMlAM\\@Ns}Nk|:8G"
# define   U           "EDGEDH=EtCElDH{~H|AJk}"       "Jk?LSzL[|M[wMcxNksNst:"
#  define u                  "Hs?H|@=HdFHtEI"             "\\HI\\FJLHJTD:8H"
char  *   x                   ,*X , ( * i )[               640],z[3]="4_",
*Z = "4,8O4.8O4G" r U "4M"u S"4R"u t"4S8CHdDH|E=HtAIDAIt@IlAJTCJDCIlKI\\K:8K"U
 "4TDdWDdW=D\\UD\\VF\\FFdHGtCGtEIDBIDDIlBIdDJT@JLC:8D"t"4UGDNG\\L=GDJGLKHL\
FHLGHtEHtE:"p"4ZFDTFLT=G|EGlHITBH|DIlDIdE:HtMH|M=JDBJLDKLAKDALDFKtFKdMK\
\\LJTOJ\\NJTMJTM:8M4aGtFGlG=G|HG|H:G\\IG\\J=G|IG|I:GdKGlL=G|JG|J:4b"W
S"4d"W t t"4g"r w"4iGlIGlK=G|JG|J:4kHl@Ht@=HdDHtCHdPH|P:HdDHdD=It\
BIlDJTEJDFIdNI\\N:8N"w"4lID@IL@=HlIH|FHlPH|NHt^H|^:H|MH|N=J\\D\
J\\GK\\OKTOKDXJtXItZI|YIlWI|V:8^4mHLGH\\G=HLVH\\V:4n" u t t
"4p"W"IT@I\\@=HdHHtGIDKILIJLGJLG:JK?JK?=JDGJLGI|MJDL:8M4\
rHt@H|@=HtDH|BJdLJTH:ITEI\\E=ILPILNNtCNlB:8N4t"W t"4u"
p"4zI[?Il@=HlHH|HIDLILIJDII|HKDAJ|A:JtCJtC=JdLJtJL\
THLdFNk|Nc|\
:8K"; main (
int C,char**        A) {for(x=A[1],i=calloc(strlen(x)+2,163840);
C-1;C<3?Q=_=       0,(z[1]=*x++)?((*x++==104?z[1]^=32:--x), X =
strstr(Z,z))      &&;(X+=C++):(printf("P2 %d 320 4 ",V=b/2+32),
V*=2,s=Q=0,C     =4):C<4?Q-->0?i[;(int)((l+=o)+b)][;(int)(k+=B)
]=1:_?_-=.5/    256,o=(v(2)-(l=v(0)))/(Q=16),B=(v(3)-(k=v(1)
))/Q:*X>60?y   ,q(L[4],L[5];)q(L[6],L[7];)*X-61||(++X,y,y,y),
Y:*X>57?++X,  y,Y:*X >54?++X,b+=*X++%64*4:--C:printf("%d "
,i[Q][s]+i[Q ][s+1]+i[Q+1][s]+i[Q+1][s+1];)&&;(Q+=2)<V||(Q=
0,s+=2)<640
||(C=1));}

Ответить

Номер ответа: 4
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #4
Добавлено: 12.02.07 19:37
Неужели на С++ можно писать более непонятный код?
Хотя... Некоторые и на VB ухитряются писать так, что и сами потом не поймут, что написали :)

А вообще в асме наверное всяких недокументированных фич больше. Типа использования xor eax, eax вместо mov eax, 0 для обнуления регистра... Финт ушами красивый конечно, но с точки зрения понимания кода не идеален.

Ответить

Номер ответа: 5
Автор ответа:
 vito



Разработчик Offline Client

Вопросов: 23
Ответов: 879
 Web-сайт: softvito.narod2.ru
 Профиль | | #5
Добавлено: 12.02.07 20:14
//тесты показали что лучше использовать оба языка вместе.

Именно так. На чистом асме, всерьез давно никто не пишет.
Вот только будь внимателен: С и С++ разные языки.
С++ соместим с С, но не наоборот. И именно на С пишутся, писались и будут писаться дрова, ядра операционок, комптляторы других языков и т.д.
Его, кстати еще называют высокоуровневым ассемблером.

Ответить

Номер ответа: 6
Автор ответа:
 AndreyMp



ICQ: 237822510 

Вопросов: 28
Ответов: 1182
 Профиль | | #6 Добавлено: 12.02.07 20:24
Давно отошел от системного программирования, все как то на базы данных заказы идут.:((В свое время неплохо получалось и на асме, но наверно vito прав С форева. (К сожалению нет сейчас надобности прогить ни в Си ни на Асме).

Ответить

Номер ответа: 7
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #7
Добавлено: 13.02.07 00:28
Неужели на С++ можно писать более непонятный код?

На C++ можно все! :)

А вообще в асме наверное всяких недокументированных фич больше.

Ну во-первых, к языку это не относится, во вторых, с пониманием этого у человека, знающего ассемблер, никаких проблем не возникает, в-третьих, существует довольно много статей, в которых изложены различные оптимизации, в том числе и эта - xor и меньше занимает и быстрее работает, чем mov

И именно на С пишутся, писались и будут писаться дрова, ядра операционок, комптляторы других языков и т.д.

Здесь больше дело привычки и традиции опен-сурс, большая часть десктопного софта, Винда, QT и т.п. написаны на C++. Дрова тоже можно писать на C++.

Ответить

Номер ответа: 8
Автор ответа:
 vito



Разработчик Offline Client

Вопросов: 23
Ответов: 879
 Web-сайт: softvito.narod2.ru
 Профиль | | #8
Добавлено: 13.02.07 01:18
Sharp

Здесь больше дело привычки и традиции опен-сурс, большая часть десктопного софта, Винда, QT и т.п. написаны на C++. Дрова тоже можно писать на C++.


Я ценю и уважаю и С и С++. И тенденция сейчас действитеельно в строну С++. Но все ответственное до сих пор пишется на С.
Для этого есть много причин. И скорость выполнения и большая стабильность и строгость языка.
Да и потом скажу честно, не знаю как ты, но когда я беру большой проект, написанный на С++ по всем традициям ООП... Листинг, часто просто нечитабельный. Гибкость языка часто идет ему во вред. Хотя и есть соглашения, у каждого кодера свой стиль, ну и как ты сказал, на С++ можно делать невероятные конструкции.

Насчет дров. Так их умудряются и на Дельфях писать.:) В качестве экспиримента.

Не знаю как сейчас, но до последнего времени мелкософт свой офис, вплоть до ХР писал на С. Не жалел средств и времени.:)

// И что пожалуй самое забавное в Viste будет опять рулить C++. В DX10 все примерчики на нем родимом. Что - то управляемый код никак не начнет победоносное шествие.:)

Ответить

Номер ответа: 9
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #9 Добавлено: 13.02.07 01:59
// И что пожалуй самое забавное в Viste будет опять рулить C++. В DX10 все примерчики на нем родимом. Что - то управляемый код никак не начнет победоносное шествие.:)

Скоро появится Singularity, под которой может выполняться только управляемый код (неуправляемый - разве что под эмулятором)

Ответить

Номер ответа: 10
Автор ответа:
 vito



Разработчик Offline Client

Вопросов: 23
Ответов: 879
 Web-сайт: softvito.narod2.ru
 Профиль | | #10
Добавлено: 13.02.07 09:06
 Brand
Скоро появится Singularity, под которой может выполняться только управляемый код (неуправляемый - разве что под эмулятором)


Ох Brand, Brand. Сколько нас этим уже пугают?
Пока компьютеры не изменились принципиально, все будет по прежнему.

Для каждой цели свой инструмент.

// Хотя не могу не отметить, что на моем новом 64 AMD, управляемый код гораздо шустрее. Сбылись обещанные MS обещания.
Но впрочем, если перекомпилировать родной код, свежим компилятором, то все наоборот. Такие вот дела.
//------------------

И еще один вопрос. Я может не курсе дел. Назови хоть одну серьезну реализацию под уравляемым кодом?

// И еще, что касается запрета. в С++ есть возможность смешивать родной и управляемый код. Нужно только разрешить это в опциях проекта. Можно вообще ничего не использовать из библиотеки NET, но формально код станет управляемым. Без всяких изменений.
Такая возмржность только для MS компилятора.

Ответить

Номер ответа: 11
Автор ответа:
 mc-black



ICQ: 308-534-060 

Вопросов: 20
Ответов: 1860
 Web-сайт: mc-black.narod.ru/dzp.htm
 Профиль | | #11
Добавлено: 13.02.07 10:02
при чем тут .NET, народ? не отходите далеко от темы.

я согласен с vito, что лучше использовать оба языка вместе. но в чистом виде на ассемблере писали, пишут и будут писать, причем часто довольно специфичные вещи типа драйверов, dll, доморощенные операционки и др. но очень крупный проект на asm'е сделать практически ни у кого не получается. такие монстры прикладного программирования пишутся на с или на c++. опять же, некоторые фрагменты оптимизируются на встроенном асемблере или в модулях на ассемблере.

Ответить

Номер ответа: 12
Автор ответа:
 Visual Basic .NET 2005 Пиратская версия



Вопросов: 38
Ответов: 190
 Web-сайт: ex3mos.ucoz.ru
 Профиль | | #12
Добавлено: 13.02.07 10:09
я согласен с vito, что лучше использовать оба языка вместе. но в чистом виде на ассемблере писали, пишут и будут писать, причем часто довольно специфичные вещи типа драйверов, dll, доморощенные операционки и др. но очень крупный проект на asm'е сделать практически ни у кого не получается. такие монстры прикладного программирования пишутся на с или на c++. опять же, некоторые фрагменты оптимизируются на встроенном асемблере или в модулях на ассемблере.

I am так и пишу
ФИГА СЕБЕ!!
Павел не писал на C++ :) www.ioccc.org форевер :)


                                  #include\
                                  <stdio.h>
                     #include <stdlib.h>
                     #include <string.h>

                    #define w "Hk~HdA=Jk|Jk~LSyL[{M[wMcxNksNss:"
                   #define r"Ht@H|@=HdJHtJHdYHtY:HtFHtF=JDBIl"\
                  ";DJTEJDFIlMIlM:HdMHdM=I|KIlMJTOJDOIlWITY:8Y"
                 #define S"IT@I\\@=HdHHtGH|KILJJDIJDH:H|KID"\
                "K=HdQHtPH|TIDRJDRJDQ:JC?JK?=JDRJLRI|UItU:8T"
               #define _(i,j)L[i=2*T[j,O[i=O[j-R[j,T[i=2*\
              R[j-5*T[j+4*O[j-L[j,R[i=3*T[j-R[j-3*O[j+L[j,
             #define t"IS?I\\@=HdGHtGIDJILIJDIItHJTFJDF:8J"

    #define y yy(4),yy(5), yy(6),yy(7)
  #define yy( i)R=T,T[i ] =O,O=L
#define Y _(0 ], 4] )_ (1 ], 5] )_ (2 ], 6] )_ (3 ], 7] )_=1
#define v(i)( (( R[ i ] * _ + T [ i ]) * _ + O [ i ]) * _ + L [ i ]) *2
double b = 32 ,l ,k ,o ,B ,_ ; int Q , s , V , R [8 ], T[ 8] ,O [8 ], L[ 8] ;
#define q( Q,R ) R= *X ++ % 64 *8 ,R |= *X /8 &7 ,Q=*X++%8,Q=Q*64+*X++%64-256,
# define p "G\\QG\\P=GLPGTPGdMGdNGtOGlOG" "dSGdRGDPGLPG\\LG\\LHtGHtH:"
# define W "Hs?H{?=HdGH|FI\\II\\GJlHJ" "lFL\\DLTCMlAM\\@Ns}Nk|:8G"
# define U "EDGEDH=EtCElDH{~H|AJk}" "Jk?LSzL[|M[wMcxNksNst:"
# define u "Hs?H|@=HdFHtEI" "\\HI\\FJLHJTD:8H"
char * x ,*X , ( * i )[ 640],z[3]="4_",
*Z = "4,8O4.8O4G" r U "4M"u S"4R"u t"4S8CHdDH|E=HtAIDAIt@IlAJTCJDCIlKI\\K:8K"U
 "4TDdWDdW=D\\UD\\VF\\FFdHGtCGtEIDBIDDIlBIdDJT@JLC:8D"t"4UGDNG\\L=GDJGLKHL\
FHLGHtEHtE:"p"4ZFDTFLT=G|EGlHITBH|DIlDIdE:HtMH|M=JDBJLDKLAKDALDFKtFKdMK\
\\LJTOJ\\NJTMJTM:8M4aGtFGlG=G|HG|H:G\\IG\\J=G|IG|I:GdKGlL=G|JG|J:4b"W
S"4d"W t t"4g"r w"4iGlIGlK=G|JG|J:4kHl@Ht@=HdDHtCHdPH|P:HdDHdD=It\
BIlDJTEJDFIdNI\\N:8N"w"4lID@IL@=HlIH|FHlPH|NHt^H|^:H|MH|N=J\\D\
J\\GK\\OKTOKDXJtXItZI|YIlWI|V:8^4mHLGH\\G=HLVH\\V:4n" u t t
"4p"W"IT@I\\@=HdHHtGIDKILIJLGJLG:JK?JK?=JDGJLGI|MJDL:8M4\
rHt@H|@=HtDH|BJdLJTH:ITEI\\E=ILPILNNtCNlB:8N4t"W t"4u"
p"4zI[?Il@=HlHH|HIDLILIJDII|HKDAJ|A:JtCJtC=JdLJtJL\
THLdFNk|Nc|\
:8K"; main (
int C,char** A) {for(x=A[1],i=calloc(strlen(x)+2,163840);
C-1;C<3?Q=_= 0,(z[1]=*x++)?((*x++==104?z[1]^=32:--x), X =
strstr(Z,z)) &&;(X+=C++):(printf("P2 %d 320 4 ",V=b/2+32),
V*=2,s=Q=0,C =4):C<4?Q-->0?i[(int)((l+=o)+b)][(int)(k+=B)
]=1:_?_-=.5/ 256,o=(v(2)-(l=v(0)))/(Q=16),B=(v(3)-(k=v(1)
))/Q:*X>60?y ,q(L[4],L[5])q(L[6],L[7])*X-61||(++X,y,y,y),
Y:*X>57?++X, y,Y:*X >54?++X,b+=*X++%64*4:--C:printf("%d "
,i[Q][s]+i[Q ][s+1]+i[Q+1][s]+i[Q+1][s+1])&&;(Q+=2)<V||(Q=
0,s+=2)<640
||(C=1));}

Ну, для микроконтроллеров ассемблер юзать вроде как более выгодно так как он быстрее, а там скорость всё ещё решает, т.е. прога "привет мир блин" на .нет будет не 5 секунд запускаться, а с час или два :)
А про .нет разговора небыло. Так же как небыло разговора про МФЦ, АТЛ. Был только чистый C++ и никаких CLR

Ответить

Номер ответа: 13
Автор ответа:
 Visual Basic .NET 2005 Пиратская версия



Вопросов: 38
Ответов: 190
 Web-сайт: ex3mos.ucoz.ru
 Профиль | | #13
Добавлено: 13.02.07 10:12
Кто придумал что нельзя редактировать мессаги!!
С++ соместим с С, но не наоборот. И именно на С пишутся, писались и будут писаться дрова, ядра операционок, комптляторы других языков и т.д.

Пишем же на ТРЕХ языках! не на двух

Ответить

Номер ответа: 14
Автор ответа:
 Visual Basic .NET 2005 Пиратская версия



Вопросов: 38
Ответов: 190
 Web-сайт: ex3mos.ucoz.ru
 Профиль | | #14
Добавлено: 13.02.07 10:16
Повторяю!!:Кто придумал что нельзя редактировать мессаги!!
Пишу оску на C++\C\ASM

Ответить

Номер ответа: 15
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #15
Добавлено: 13.02.07 10:18
Я придумал. Тебе стало легче? :) Нефик оффтопить.

Ответить

Страница: 1 | 2 | 3 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам