![]() |
Модераторы: PILOT |
![]() ![]() ![]() |
|
Sined |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 78 Регистрация: 19.5.2004 Репутация: -1 Всего: 0 |
Народ, а можно вопрос: какое вся эта дискуссия имеет отношение к теме топика. Вроде бы человек хочет найти кого-то к себе в помощники и дает тестовое задание на тему. Не приходится сомневаться, что программу из 5 строчек на С Oleg1973 может переписать на асме(там правда строчек поболе будет), однако создателю топика не особо нужно, чтобы Олег1973 у него работал(да он и далеко к тому же-- в Италии). В данном случае ситуация представляется следующим образом--куча где-то и как-то работающих людей пытается лишить возможности заработать тех, у кого работы пока нет(конкуренция, однако ).
Насчет того, на чем надо писать программу существует точный ответ -- на чем непосредствееный начальник скажет(поскольку именно он отвечает за программу и все пи-люли достаются ему). Если ты пишешь под винду в пользовательском режиме -- выигрышь от написания кода на асме будет скорее всего минимальный. Даже плохо с точки зрения логики написанная, но грамотно оформленная программа обычно читаема. |
|||
|
||||
DENNN |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3878 Регистрация: 27.3.2002 Где: Москва Репутация: нет Всего: 43 |
В принципе Fantasist точно высказал все мысли, которые появляются при прочтении ответов Oleg1973.
Человек чуть ли не явно отрицает все достоинства системного подхода при написании проектов, в сравнениях асма с другими языками (а начиналось по началу только с C++) готов привести любые умозрительные заключения и перевернуть все сног на голову, лишь бы доказать свою правоту. К примеру, начисто отрицается польза грамотного написания кода на C++, использование библиотек MFC,ATL, было названо неэффективным и ненужным, а сами библиотеки были названы просто врапперами и ничем иным. Со стороны кажется что это маленький ребенок, который топает ножкой и кричит "хочу луну!". А на все доводы против его мнения просто предпочитает закрывать глаза. Это сообщение отредактировал(а) DENNN - 28.7.2004, 09:32 |
|||
|
||||
oleg1973 |
|
||||||||||||||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: -2 Всего: 34 |
DENNN
ну а чем MFC не враппер? я не пытаюсь никому ничего доказать,имхо бесполезно каждый может и пишет как ему удобней
небыло такого,имелось ввиду что тоже самое можно сделать и без них либо с ними и на асме Sined
ты так думаеш? з.ы. да кстати напомню содержание первой серии для тех кто весь тред не читал есть работодатель который ишет начинающего (запомните это слово) сишника,есть тестовое задание,написать либу,я от скуки предложил написать на асме, и тут все и началось,обвинения во всех смертных грехах, антисоциальном поведении и так далее. впечатление у меня складывается такое что кучка зазомбированых людей которые не признают ничего кроме с++ (недай боже визуального еще ![]() ![]() А теперь разберемся углубленно, в данный момент как выглядит программа (к примеру OpenGL ) а асме:
по моему все достаточно читаемо и понятно и от С мало чем отличается, ну если только этим
тоесть как вы надеюсь поняли даже на асме структура программы таже что и на С, для самых ленивых есть макросы case, if, then и.т.п. так же нет ну никакой проблемы для работы с разными там обьектами и тому подобной красотой ![]()
для любителей процедурного програмирования,с созданием фрейма стека для передачи параметров (а-ля С) пример собственно процедуры
вызвать ее можно к примеру так
зато при написании на асме можно с легкостью адаптировать свою либу/програму для линковки с модулями написаными на любом другом языке, так как передачу параметров через стек или регистры всегда можно "заточить" по нужный модуль. про возможности оптимизации я даже говорить не буду, ни один компилер не сможет оптимизировать код так как можно это сделать ручками. для отладки есть куча инструментария, начиная от отладчиков пользовательского уровня заканчивая ring0 отладчиками, либо если уж так хочется то можно и в Вижуал сишном дебугере отлаживать, достаточно там где нада бреак поинт int3 поставить. и еще раз повторю, складывается впечатление что вы господа настроены именно против асма, еслиб я предложил написать либу на вижуал васике, флейма меньше бы было ![]() з.ы.ы. чтоб всех вас успокоить, ХОТИТЕ НА С/С++ НАПИШУ? и на нем умею ![]() Это сообщение отредактировал(а) oleg1973 - 28.7.2004, 11:08 -------------------- SST 465555 icq 200-512-712 |
||||||||||||||
|
|||||||||||||||
Orlan |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 10.6.2004 Где: Киев Репутация: 1 Всего: 1 |
Интерестно как на ассемблере будет выглядеть строка:
1. Создается объект типа Log 2. Получается интерфейс ILog 3. Текст "Тест" преобразовывается из анси в юникод (неявный выхов врапера _bstr_t) 4. Вызывается метод Log Ничего более для программиста делать не надо. Код понятен даже для студента, который знает только основы СОМ. А какой код будет в этом случае на ассемблере? Страшно подумать Нет враперов, только примитивные макросы, слегка упрщающие написание инструкций к процессору
Можна также было бы написать и в машинных кодах ![]() ![]() ![]() --------------------
А вы знали, что терапевт - это 1024 гигапевта или 1048576 мегапевтов |
||||
|
|||||
Sined |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 78 Регистрация: 19.5.2004 Репутация: -1 Всего: 0 |
2 кучки -- только одна кучка больше другой. Из ненаписанного в кратком содержании-- кое-кто (не будем показывать пальцами) предложил написать прогу на асме, после того как ему(не будем показывать пальцами, хотя хочется) мягко(!) объяснили, что прога на асме не очень то нужна, поскольку оцениваются знание и стиль написания в срр началось представление "Обидели юродивого--отняли коппеечку" и "Выходит, гении никому не нужны" с обвинением ни в чем ниповинного работодателя во всех смертных грехах и болезнях("подход у Вас, батенька, однобокий"). Это представление продолжается до сих пор. |
|||
|
||||
Orlan |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 10.6.2004 Где: Киев Репутация: 1 Всего: 1 |
ИМХО, Ассемблер надо использовать только в узко специализированных задачах, работа с оборудованием например, оптимизация отдельных участков кода, которые выполняются милионы раз за секунду. А в остальных задачах это дополнительный напряг для проекта в целом.
--------------------
А вы знали, что терапевт - это 1024 гигапевта или 1048576 мегапевтов |
|||
|
||||
DENNN |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3878 Регистрация: 27.3.2002 Где: Москва Репутация: нет Всего: 43 |
Да будет Вам известно, милостивый государь, что сдесь обсуждалась не разовая работа (написал, взял деньги и пропал), а именно работа под коммерческий проект. И хоть вы в лепешку разбейтесь, но разработка на асме сложного комплекса несколькими програмистами на порядок сложнее, чем на общепринятых и отлаженных технологиях. И в таком ключе даже использование вижуал барсика выглядит предпочтительней (при всей моей нелюбви к нему), чем написание кода на асме только для того чтоб загнуть пальцы перед зеркалом. Я много знаю больших коммерческих приложений, написанных на всех обсуждаемых языках, в тот только асм отстает ![]() |
|||
|
||||
oleg1973 |
|
||||||||||||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: -2 Всего: 34 |
Orlan
наивный, ты обьекты в дебугере видел? ![]() обычный массив адресов функ-методов
не 1986 год и не на Микроше програмируем а на твой взгляд с твоей прогой на С компилятор что делает? ![]() Sined
а по теме нечего сказать? так как вы человек для нас новый, о ваших програмерских способностях мы вообще ничего не знаем. DENNN
Да будет Вам известно, милостивый государь, что пальцы никто не загинал
ну да согласен, тут студент первокурсник ну ни как не разберется ![]() вот только вопрос возник это какие такие в асме технологии не общепринятые используются? и не отлаженые? -------------------- SST 465555 icq 200-512-712 |
||||||||||||
|
|||||||||||||
Sined |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 78 Регистрация: 19.5.2004 Репутация: -1 Всего: 0 |
По теме я уже сказал -- не надо гадить в чужую тему.(Нонешний "гнилой базар" к ней отношения не имеет)
Oleg1973, то чем вы сейчас занимаетесь более или менее лишено смысла -- более того, прямой переход на личности череват нарушением правил Форума. Мне хватает моих способностей и для работы и для того, чтобы понимать, что языки это ИНСТРУМЕНТ и не более. Причем спорить о них достаточно глупо. Приведу простой пример: пассатижами удобно выдирать гвозди, откусывать провода и.т.д. При желании(если сильно напрячься можно забивать гвозди). Молотком можно без напряга эти гвозди забивать, но откусить провод уже не удастся--однако, если кто-нибудь скажет, что пассатижи лучше молотка, то я, как и 70% людей, сделаю не очень лестный вывод о его умсвенных способностях. |
||||
|
|||||
Orlan |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 10.6.2004 Где: Киев Репутация: 1 Всего: 1 |
Прочитал твой вариант кода на асьме
1. Объект ты не создавал 2. Соответственно не анализировал был ли он создан, если нет, то с какой ошибкой 3. Если он не создан был, ты не вызвал бы исключение 4.
Программист ни одной строчки кода не написал что бы выполнить это - все происходит неявно. А ты даже упустил реализацию этого кода. И это потому что у тебя под руками нет подобной к ATL библиотеки 5.
Кто тебе сказал, что функция у этого одна и что она первая? Тебе надо было найти в реестре где находится СОМ длл-ка и прочитать из нее библиотеку типов и потом уже вызывать функцию, перед этим найдя ее адрес или dispid 6, 7, 8, ...... мне было просто лень их искать, они не такие очевидные. Да и ассемблер я знаю не так хорошо как ты, что бы идеально четко представлять как нужно писать на ассемблере СОМ+ приложения В С++ есть еще шаблоны, их тоже нету не только в Асеммблере, но и в Паскале и покачто в Яве и Сшарпе. Вот такие вот дела --------------------
А вы знали, что терапевт - это 1024 гигапевта или 1048576 мегапевтов |
||||
|
|||||
oleg1973 |
|
|||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: -2 Всего: 34 |
Sined
я на личности не переходил просто чтобы дискутировать на данную тему (которую тупо свели к ASM VS C/C++) надо иметь некую подготовку, printf("hello world") явно недостаточно будет а mov ax,bx (это в наше то 32 разрядное время ![]() пример с молотком вполне удачен но разговор не о удобстве выполнения а о совместимости в одном проекте кода на асме и С естестно если в проекте все кодят только на формочках и кнопочках про асм там и говорить нечего но если есть ктото кто рубит в асме то почему бы и нет и мысли о том что сопровождение такого проекта будет сложнее не совсем верны -------------------- SST 465555 icq 200-512-712 |
|||
|
||||
oleg1973 |
|
||||||||||||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: -2 Всего: 34 |
Orlan
это пример обьект в нем мой собственный а не из какойто там dll какие у него функ я знаю соответственно
что ты имел ввиду?
ок упростим пример
в данном случае "создал" обьект, проще говоря получил адр структуры как у всех нормальных людей имеется инклуд типа
который заполняется при вызове DirectDrawCreate далее
вызываю SetCooperativeLevel - метод обьекта DDraw так что номер функ мне пошарабану надеюсь понятно? ну а если обьект мой собстенный , мне его создавать совсем не нада он у меня описан как структура в секции неинициализированных данных и естестно если я его придумал то уж знаю какая функ по счету мне нужна ![]() -------------------- SST 465555 icq 200-512-712 |
||||||||||||
|
|||||||||||||
DENNN |
|
||||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3878 Регистрация: 27.3.2002 Где: Москва Репутация: нет Всего: 43 |
Я читаю и смеюсь
![]()
Вообще обидно: из-за высказываний одного человека весь топик свелся к какому-то бреду, а все спорящие уподобляются самому спорщику. |
||||||
|
|||||||
oleg1973 |
|
|||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: -2 Всего: 34 |
DENNN
ну так не высказывайся -------------------- SST 465555 icq 200-512-712 |
|||
|
||||
Orlan |
|
||||||||||||||||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 10.6.2004 Где: Киев Репутация: 1 Всего: 1 |
Программер на С++ тоже не знал. Толко он создал, а ты нет. Ему и не надо было знать этого. Вся ненужная для него (но не для ассемблеровского программера) зашита во враперах
Преобразование в Юникод. _bstr_t это С++ врапер и ты вызвать его не можеш.
Ты еще хочеш упростить итак всего 2 строчки кода??? Пример и так для С++ крайне простой. Никаких сложных алгоритмов, циклов и даже операторов перехода нет!!!
ОК. Осталось: по этой части:
Ниже этой цытаты ты привел структуру из DirectX. А ILog писал другой (пердположим) программист. И поэтому тебе самому прийдется писать ее вручну, за тебя этот С++ программер делать не будет. А в С++ за это отвечает только одна строчка кода и ты можеш юзать интерфейсы:
Теперь я надеюсь ты заметил, что то что непрофессиональный С++ программер сделал даже не задумываясь, тебе пришлося разбиратся в основах технологии СОМ и ты вообще не реализовывал уведомление об ошибках, хотя в коде, что я привел она есть. PS. Очень поражает настойчивость oleg1973. Вместо того, что бы сказать, что на Ассемблере этот текст лучше не делать - слишком затратно по времени, надо знать много, настаивает, что Ассемблер все таки здесь можно применять в реальных проектах с существенным использованием СОМ. DENNN, просьба не начинать тут флейм. Для этого есть другие разделы. Берите туда oleg1973 и пишите, что хотите. PSS. (Модератору) Тема раскололась реально на 2 части. Можно было б их разделить физически в разные темы, в 2 паралельных обсуждения? Такое в форумах часто встречается, особенно когда тема "горячая" Это сообщение отредактировал(а) Orlan - 28.7.2004, 16:29 --------------------
А вы знали, что терапевт - это 1024 гигапевта или 1048576 мегапевтов |
||||||||||||||||||||
|
|||||||||||||||||||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Обсуждение работы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |