Ну, для микроконтроллеров ассемблер юзать вроде как более выгодно так как он быстрее, а там скорость всё ещё решает, т.е. прога "привет мир блин" на .нет будет не 5 секунд запускаться, а с час или два
Неужели на С++ можно писать более непонятный код?
Хотя... Некоторые и на VB ухитряются писать так, что и сами потом не поймут, что написали
А вообще в асме наверное всяких недокументированных фич больше. Типа использования xor eax, eax вместо mov eax, 0 для обнуления регистра... Финт ушами красивый конечно, но с точки зрения понимания кода не идеален.
//тесты показали что лучше использовать оба языка вместе.
Именно так. На чистом асме, всерьез давно никто не пишет.
Вот только будь внимателен: С и С++ разные языки.
С++ соместим с С, но не наоборот. И именно на С пишутся, писались и будут писаться дрова, ядра операционок, комптляторы других языков и т.д.
Его, кстати еще называют высокоуровневым ассемблером.
Давно отошел от системного программирования, все как то на базы данных заказы идут.(В свое время неплохо получалось и на асме, но наверно vito прав С форева. (К сожалению нет сейчас надобности прогить ни в Си ни на Асме).
А вообще в асме наверное всяких недокументированных фич больше.
Ну во-первых, к языку это не относится, во вторых, с пониманием этого у человека, знающего ассемблер, никаких проблем не возникает, в-третьих, существует довольно много статей, в которых изложены различные оптимизации, в том числе и эта - xor и меньше занимает и быстрее работает, чем mov
И именно на С пишутся, писались и будут писаться дрова, ядра операционок, комптляторы других языков и т.д.
Здесь больше дело привычки и традиции опен-сурс, большая часть десктопного софта, Винда, QT и т.п. написаны на C++. Дрова тоже можно писать на C++.
Здесь больше дело привычки и традиции опен-сурс, большая часть десктопного софта, Винда, QT и т.п. написаны на C++. Дрова тоже можно писать на C++.
Я ценю и уважаю и С и С++. И тенденция сейчас действитеельно в строну С++. Но все ответственное до сих пор пишется на С.
Для этого есть много причин. И скорость выполнения и большая стабильность и строгость языка.
Да и потом скажу честно, не знаю как ты, но когда я беру большой проект, написанный на С++ по всем традициям ООП... Листинг, часто просто нечитабельный. Гибкость языка часто идет ему во вред. Хотя и есть соглашения, у каждого кодера свой стиль, ну и как ты сказал, на С++ можно делать невероятные конструкции.
Насчет дров. Так их умудряются и на Дельфях писать. В качестве экспиримента.
Не знаю как сейчас, но до последнего времени мелкософт свой офис, вплоть до ХР писал на С. Не жалел средств и времени.
// И что пожалуй самое забавное в Viste будет опять рулить C++. В DX10 все примерчики на нем родимом. Что - то управляемый код никак не начнет победоносное шествие.
// И что пожалуй самое забавное в Viste будет опять рулить C++. В DX10 все примерчики на нем родимом. Что - то управляемый код никак не начнет победоносное шествие.
Скоро появится Singularity, под которой может выполняться только управляемый код (неуправляемый - разве что под эмулятором)
Скоро появится Singularity, под которой может выполняться только управляемый код (неуправляемый - разве что под эмулятором)
Ох Brand, Brand. Сколько нас этим уже пугают?
Пока компьютеры не изменились принципиально, все будет по прежнему.
Для каждой цели свой инструмент.
// Хотя не могу не отметить, что на моем новом 64 AMD, управляемый код гораздо шустрее. Сбылись обещанные MS обещания.
Но впрочем, если перекомпилировать родной код, свежим компилятором, то все наоборот. Такие вот дела.
//------------------
И еще один вопрос. Я может не курсе дел. Назови хоть одну серьезну реализацию под уравляемым кодом?
// И еще, что касается запрета. в С++ есть возможность смешивать родной и управляемый код. Нужно только разрешить это в опциях проекта. Можно вообще ничего не использовать из библиотеки NET, но формально код станет управляемым. Без всяких изменений.
Такая возмржность только для MS компилятора.
при чем тут .NET, народ? не отходите далеко от темы.
я согласен с vito, что лучше использовать оба языка вместе. но в чистом виде на ассемблере писали, пишут и будут писать, причем часто довольно специфичные вещи типа драйверов, dll, доморощенные операционки и др. но очень крупный проект на asm'е сделать практически ни у кого не получается. такие монстры прикладного программирования пишутся на с или на c++. опять же, некоторые фрагменты оптимизируются на встроенном асемблере или в модулях на ассемблере.
я согласен с vito, что лучше использовать оба языка вместе. но в чистом виде на ассемблере писали, пишут и будут писать, причем часто довольно специфичные вещи типа драйверов, dll, доморощенные операционки и др. но очень крупный проект на asm'е сделать практически ни у кого не получается. такие монстры прикладного программирования пишутся на с или на c++. опять же, некоторые фрагменты оптимизируются на встроенном асемблере или в модулях на ассемблере.
#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@HtHdDHtCHdPH|P:HdDHdD=It\
BIlDJTEJDFIdNI\\N:8N"w"4lID@ILHlIH|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[?IlHlHH|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