· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.HEAP —› ЯВУ vs. MASM32

<< . 1 . 2 . 3 . 4 . >>

Посл.отвђт Сообщенiе


Дата: Ноя 24, 2003 14:47:04

хоть один человек высказался нормально, без всяких предрассудков...
М-м-м, а ты вообще кто такой, что еще и о предрассудках судишь... Меня почему-то не тянет ходить по делфийским форумам и кричать "делфи - отстой, асм - рулез" и нести прочую ахинею...


Дата: Ноя 24, 2003 14:49:50

Точнее на С.
Edmond учту, просто мой PEiD показал VC++

Это не такие уж странные вопросы, может я жажду просвещения, а каждый старается пнуть меня за паскаль с которого я начал.
К сожалению оптимальный формат хранения данных мне создавать не приходилось, но что касается БД, так меня вполне устраивали существующие СУБД.

masquer
могу сказать тоже самое про свой проект на delphi, хех

На самом деле если руки не кривые, можно добиться успеха на любом языке, в т.ч. и на паскале....


Дата: Ноя 24, 2003 14:54:05

На самом деле если руки не кривые, можно добиться успеха на любом языке, в т.ч. и на паскале....
Думаю, с этого стоило и начинать.


Дата: Ноя 24, 2003 15:01:31 · Поправил: Edmond

flexter
Это не такие уж странные вопросы, может я жажду просвещения, а каждый старается пнуть меня за паскаль с которого я начал.

Хорошо, хорошо. Просто на моей памяти этих вопросов уже .. ЭЭЭЭ 10? 20? 50? сколько? МНОГО было.

Поэтому я не буду на них отвечать.
У этого вопроса нет ответа -- это и есть ответ.

Вот когда ты сам начшёшь по серёзному програмить на асме, и не просто програмить, а творить, вот тогда и появится ответ на этот вопрос.

Насчёт БД. Есть такие N-мерные древовидно-ассоциативные БД
Да, они не нужны для построения тупых списков юзеров или чего другого, но вот, например для компилятора он может послужить.


Дата: Ноя 24, 2003 15:02:08

masquer
нужно уметь управлять своими эмоциями, так что разговоры типа кто ты по-жизни считаю тут не уместными.
Я тут не кричал "делфи - отстой, асм - рулез". Дельфи меня во многом не устраивает, поэтому изучаю си, но знаний в нем еще не так много как хотелось бы.
Просто дело в том, что я прекрасно знаю как "нехорошо" относятся к людям которые пишут на паскале. Это и есть великий предрассудок... (см.сообщение выше)
Короче смысл в том, что я просил больше конкретики, вместо слов "гуляй, мы тут кодеры"


Дата: Ноя 24, 2003 15:07:55

flexter
нужно уметь управлять своими эмоциями, так что разговоры типа кто ты по-жизни считаю тут не уместными.

Ответ: не нужно указывать как себя вести, это дело Модератора. :)

что я просил больше конкретики
Где именно тебе нужна конкретика?


Дата: Ноя 24, 2003 15:12:29

тут не кричал "делфи - отстой, асм - рулез". Дельфи меня во многом не устраивает, поэтому изучаю си, но знаний в нем еще не так много как хотелось бы.
Отсюда также не вытекает то, что я тебе приписал эти слова - считай это идеоматическим выражением :)

Просто дело в том, что я прекрасно знаю как "нехорошо" относятся к людям которые пишут на паскале. Это и есть великий предрассудок... (см.сообщение выше)
Я, кажется, признаков таких "предрассудков" не выказывал...

Короче смысл в том, что я просил больше конкретики, вместо слов "гуляй, мы тут кодеры"
По-моему я более чем конкретно ответил на все твои вопросы, почему-то ты решил отметить более эмоциональные ответы.


Дата: Ноя 24, 2003 15:20:35

Edmondна работе мне приходится отвечать на вопросы типа: что сделать если мышь дошла до конца коврика, а курсор еще не дошел до края экрана? :) почти каждый день, причем это делают одни и те же люди.
а этот вопрос я задаю впервые после небольшого знакомства с MASM32, т.к. друзей кодеров нет, и на фите я не учился. Знаю, знаю, упустил многое в свое время, пытаюсь наверстать.
хочется иметь стимул и причины, т.к. времени маловато, жена, ребенок...
отвлекся блин

Oracle ты тоже считаешь для построения тупых списков юзеров?


Дата: Ноя 24, 2003 15:29:55

flexter: импорты и т.д. - я имел ввиду само-релоцируемый код. Кстати многие программисты о нем нихрена не знают. Т.к. они начали свою жизнь с VisualC Delphi и т.д.
Но многие здесь начали так же как и я - Z80...i8086...и т.д. MSDOS..
Так вот последний "явный" пример саморелоцируемого кода - это были COM-файлы в MSDOS. Прелесть этого подхода в том, что во время работы фактически, можно было сместить образ программы (сегмента там) в другое место в памяти, и получить работоспособный код. Т.к. там везде используется сегментная адрессация. Так вот - любой компилер языка высокого уровня, генерит неперемещаемый код. А на асме можно сделать относительную адресацию. И код может гулять по памяти где тебе нравится.
Простой пример тому - инжектирование кода в чужой процесс.
Записал ты туда свою высокоуровневую процедуру, и у нее мигом похерились все указатели и т.д. Т.е. тебе нужно ещё писать препаратор который подготовит этот код к выполнению в чужом процессе - настроит импорты, смещения, указатели, чтоб они жили там. В случае же асма, ты можешь написать код саморелоцируемый. Т.е. к примеру обращаться к переменным так: [ebp+ofset]. при этом адрес кода легко вычисляется, и соотвественно вычисляется ebp. ВСЕ! проблему с указателями мы решили. Осталось только передать коду адрес kernel32.dll чтоб он потом сам уже смог "раскрутиться там" и настроить импорты. На ЯВУ это реализовать практически невозможно.
Далее. Все равно любой ЯВУ генерит ассемблерный код. А в каждой программе есть баги. И следовательно есть вероятность, что сгенеренный ассемблерный код будет работать некорректно. Не зная асма - не поправишь, и не поймешь где у тебя проблема.
Кстати, опять же - такой уровень оптимизации, как на асме достичь практически нереально. Т.к. простой пример (грубый достаточно конечно -) )
int f()
{
return 0;
}
сгенерит такой код:
00401020   push        ebp
00401021   mov         ebp,esp
00401023   sub         esp,40h
00401026   push        ebx
00401027   push        esi
00401028   push        edi
00401029   lea         edi,[ebp-40h]
0040102C   mov         ecx,10h
00401031   mov         eax,0CCCCCCCCh
00401036   rep stos    dword ptr [edi]
00401039   xor         eax,eax
0040103B   pop         edi
0040103C   pop         esi
0040103D   pop         ebx
0040103E   add         esp,40h
00401041   cmp         ebp,esp
00401043   call        __chkesp (00401090)
00401048   mov         esp,ebp
0040104A   pop         ebp
0040104B   ret

ну это конечно в дебаг версии.
а на асме можно было просто написать :

xor eax,eax
ret

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

И последнее, на чем я думаю можно закончить дискуссию -
если ты задаешь такие вопросы, т.к. не знаешь учить ли тебе асм или нет, или просто хочешь понять зачем люди учат\знают асм - то значит у тебя слишком много свободного времени.
если ты не знаешь учить ли тебе асм или нет - подумай сам - пригодится ли он тебе в будущем или нет. (п.с. мне он пригодился, хотя я с него начинал общаться с компами - первый асм был в 8 лет на процессоре Z80.. хехе. че-т пошло как-то получилось -) )
и в конце - ЗАБЕЙ! Не учи, если не можешь определиться. Как появится необходимость его изучить ( поймешь, что твой проект не проживет без асмового модуля) - тогда и выучишь, или на крайняк наймешь программера, который по твоему ТЗ напишет оный.


Дата: Ноя 24, 2003 15:41:16 · Поправил: Edmond

flexter
Edmond на работе мне приходится отвечать на вопросы типа: что сделать если мышь дошла до конца коврика, а курсор еще не дошел до края экрана? :) почти каждый день, причем это делают одни и те же люди.

Ты не уловил мой ответ. Я не сказал, что вопрос ТУПОЙ
Я сказал, что на него ответ должен найти ты сам.

Если же очень серьёзно, то:

1. а этот вопрос я задаю впервые после небольшого знакомства с MASM32, т.к. друзей кодеров нет, и на фите я не учился


У меня вообще таковых не было :)


2. на фите я не учился

Аналогично.

3. хочется иметь стимул и причины, т.к. времени маловато, жена, ребенок...

Родной мой, причина должна исходить ИЗнутри, а не от какого-то там ответа Edmondа.

Так, добавте это в FAQ.
========================================

1. Все могут программировать на ассемблере, но лишь не многим он нужен.
Это так, потому что Асм умеет удовлетворят таким потребностям человека:

1.1. Самоутверждение (проходит со временем)
1.2. Любовь к решению головоломок и сложных задач
1.3. Создание уникальных алгориммов и методик, которые просто невозможно увидеть на ЯВУ, потому что ЯВУ полно шаблонов, а асм -- это мир такой какой он есть.
1.4. Проектирование на Асм -- это всегда НоуХау -- всегда новое решение

Если человек не имеет склонностей к определённым видам мышления, асм для него закрыт, как например математика.
Многие могут решать примеры, но лишь несколько -- осознавать мир математически.
То же верно для ассемблера.

2. Я считаю, что основной плюс АСМ -- отсутствие технологий, шаблонов (ООП и АОП). Это чистое поля для создания собственных технологий.

3. Хотя бы из-за пункта 2 Асм уже необходим.

Асм необходим програмисту:

1. Для того, чтобы понимать почему он программирует на ЯВУ

2. Для того, чтобы понимать как думает ЯВУ, и какие шаблоны и методики есть эффективными.

3. Для того, чтобы оценить эффективность кода на ЯВУ "не используя профилирование", а значит уметь предугадать как нужно создавать программу.

4. Для понимания программирования, его основ базовых концепций.

Это только 10% списка...


Дата: Ноя 24, 2003 15:49:42

Edmond,masquer
будем считать что это было не указание, а мое личное мнение ? :)
Но всё таки интересно - более или менее большой проект на асме (реальный и общеизвестный)

rst еще раз спасибо за пример, в свое время я тоже начинал асм изучать на Z80, но дальше общих основ дело не пошло.

Ладно, настроение у меня немного упало, я понял что ничего не знаю, и нет нифига смысла в жизни, поэтому пойду читать wasm-offline-27_08_2003.

всем учавствующим в этой бессмысленной теме тоже спасибо.


Дата: Ноя 24, 2003 16:05:51

LISP for PDP-1
TR-DOS
IS-DOS
CPM
RT-11
RSX
TSX
Это то, что сейчас в голову пришло.
А вообще - можно найти проекты, которые написаны _ИЗ_ПРИНЦИПА_ на ассемблере - но стоит ли на них в таком случае обращать внимание? Их ты будешь понимать только тогда, когда станешь дZен-программером.
А вообще - в многих проектах имеются асмовые вставки.
И последнее - ты хочешь найти в себе стимулы. Когда ты поймешь, что тебе это нужно, и ты этого хочешь - это и будет единственным и правильным стимулом.


Дата: Ноя 24, 2003 16:07:03

flexter
Но всё таки интересно - более или менее большой проект на асме

Эта тема уже была на форуме. Поиск...

Ладно, настроение у меня немного упало, я понял что ничего не знаю,

Я бы на твоём месте порадовался..

ИБО, чем больше знаешь, тем больше понимаешь, что не знаешь ничего %)))


Дата: Ноя 24, 2003 16:07:10

и кстати. в последок по поводу больших и известных проектов - Insult Megademo, Satisfaction Megademo - От известных (в определенных кругах) Харьковских программеров CodeBusters.


Дата: Ноя 24, 2003 16:37:03 · Поправил: Aquila

flexter
Aquila прошу прощения, если кого-то задел своими низменными представлениями о Дзене!
но всё-таки я бы хотел услышать более серьезный ответ, дзенность, паскалепохожесть, асм - рулез форева - это меня никак не переубеждает ни в чем и не только меня


Ты будешь переубеждён тогда, когда обретёшь просветление. К тому же мой ответ вполне серьёзен. Что в нём неправда?
С другой стороны, если ты не обретёшь просветление, то это твоя сансара, а не моя :).

а на билет в баню мне вообще фиолетово :))
Правильно, не надо боятся бани. Чему быть - того не миновать :).

утрирую: вы мне тогда уж объясните чем функция CreateWindow (WinAPI) вызванная в программе на MASM32 отличается от такой же на Visual C++ ??(за него сам иногда сажусь, когда задача требует)
Предположим, ничем. Тогда зачем программировать на Visual C++? :))

Асм знать надо каждому программисту - 100% истина. Но писать на нем что (если я не работаю инженером в Intel конечно :))?
Правильный ответ: то, что хочешь.

rst спасибо, хоть один человек высказался нормально, без всяких предрассудков...
Никаких предрассудков нет, но на всякий случай мы затабуировали Дельфи :).

<< . 1 . 2 . 3 . 4 . >>


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.060