возврат из подпрограмм

Hello Olga.

Tue Jun 20 2006 22:58, Olga Nonova wrote to Alex Kocharin:

ON>>> Утверждалось, что ТОЛЬКО С провоцирует на пацанство и разгильдяйство ON>>> в программировании.

AK>> Если можно написать понятную программу на ЯВУ, можно написать и на си.

ON> Оно конечно можно. Hо в среде безумных программеров Си- это любимый ON> инструмент выдрючивания.

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

Dimmy.

Reply to
Dimmy Timchenko
Loading thread data ...

Здравствуй, Alexander!

Как то 21 Jun 06 в 01:20, Alexander Zabairatsky писал Dimmy Timchenko: AZ> (2) - возможность вместо AZ> int main(argc,argv) AZ> int argc; AZ> char* argv[]; AZ> { AZ> ======== AZ> } AZ> написать: AZ> int main(int argc, char* argv[]) AZ> { AZ> ======== AZ> }

Hеа, это было в очень старых компиляторах с. К примеру, мой Turbo C понимает только второй вариант.

Удачи! Pasha

rа4аrb@rаmblеr.ru

_*NO CARRIER*_ Now playing: silence (Winamp is _dead_)

Reply to
Pasha Popov

Michael, ты ещё здесь сидишь?

Суббота Июнь 17 2006 18:47, Michael Belousoff wrote to George Shepelev:

GS>>>> В эхотаге скоpее с org 0 ;) MB>>> org 26h и ни байтом меньше. ;-) GS>> Hy и как ты в этy точкy попадёшь? MB> Вектоp yкажет, котоpый по RESETy.

А корректное значение вектора от сырости заведётся?

GS>> И вектоpа пpеpываний тебе Пyшкин задавать бyдет? MB> Да я и сам себе Пyшкин. ;-) Ладно, пyскай бyдет org 00h, yломал.

Hеужели консенсус? ;)

Георгий

Reply to
George Shepelev

Ruslan, ты ещё здесь сидишь?

Воскресенье Июнь 18 2006 21:32, Ruslan Mohniuc wrote to George Shepelev:

GS>> При том, что если пользуешься "аппликухами" - должен быть GS>> _абсолютно_ уверен, что они корректные. RM> Вот скажи, ты когда плавающую точку (IEE754) на асме применяешь, RM> неужто сам все с нуля писал, или все-таки взял готовый аппнот от RM> мелкочипа?

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

RM> Я, например, взял готовый. RM> PS только не говори мне, что всегда без плавучки обходился. Еще скажи, RM> что базы данных никогда не писал и краткие базы ключей для ускорения RM> поиска по основным базам никогда не строил. Я разумеется про асм и RM> майкрочип.

Вообще-то для подобных задач (арифметика с "плавучкой" и базы данных) выбор PIC'а вряд ли разумен.

Георгий

Reply to
George Shepelev

Ruslan, ты ещё здесь сидишь?

Понедельник Июнь 19 2006 06:31, Ruslan Mohniuc wrote to Jurgis Armanavichius:

RM> Hет таких случаев, не соглашайся. Вставки-да, но проекты на асме RM> целиком- это умерло, как мамонты.

Где-то я уже слышал байку от M$, что программировать абсолютно всё следует на вижуалбэйсике ;)

Георгий

Reply to
George Shepelev

Alex, ты ещё здесь сидишь?

Понедельник Июнь 19 2006 08:40, Alex Kocharin wrote to George Shepelev:

GS>> Это покуда не возникнет желание впихнуть такую конструкцию к GS>> примеру внутрь строчки for. И потом хвастаться, как компактно GS>> получилось! :-/ AK> Если внутри иницилизирующей части, разворачиваем перед циклом. AK> Если внутри условия или приращения, разворачиваем внутрь цикла...

Это уже не в одну строчку будет. А заядлые сишники обожают экономить на числе строк...

Георгий

Reply to
George Shepelev

Ruslan, ты ещё здесь сидишь?

Понедельник Июнь 19 2006 09:09, Ruslan Mohniuc wrote to George Shepelev:

IH>>> Да, на асме можно сделать более быстрый код, но с какой целью? GS>> Быстродействие эхотажных контролеров сильно ограничено! До них GS>> ещё не дошла "гонка гигагерцев". В ближайшее время и не дойдёт, GS>> потому что в эхотаге потребление критично... RM> Есть многое такое, друг Георгий, что и не снилось ни тебе, ни мне.

Понимаешь, в чём дело, есть физические ограничения п/п технологий, которые в ближайшие годы не обойти...

Георгий

Reply to
George Shepelev

Slav, ты ещё здесь сидишь?

Понедельник Июнь 19 2006 12:08, Slav Matveev wrote to George Shepelev:

GS>> Hичуть не менее наглядно, чем сишные закорючки. SM> and/andw также наглядно как и andwf 0/1

Гораздо наглядней, ошибиться труднее. В глазах не рябит от лишних буковок.

GS>> Лишняя команда выкинута. И где хвалёная оптимизация сишного GS>> компилятора? SM> Какая оптимизация? :)

Hеужели мне показалось, что вначале использовался компилятор?

SM> если бы твои макросы умели разбирать SM> mov reg2,(a+b+reg2)&reg3 цены бы им небыло.

А нафиг? Если так для тебя нагляднее - вбей такую строчку в комментарий.

SM> ps. SM> а меня раздражает когда операции переслки называются SM> то mov, то ld в зависимости от типов операндов. SM> Приведешь макросами к единому виду?

Такие компиляторы тоже есть, но я как-то привык пользоваться "родным" микрочиповским, он меня подкупил надёжностью работы. Лично для меня загрузка константы отличающейся мнемоникой более наглядна, чем втыкание символов "#", заодно не перепутаешь разворачивающийся в несколько процессорных команд макрос с "атомарной" командой...

Георгий

Reply to
George Shepelev

Dimmy, ты ещё здесь сидишь?

Понедельник Июнь 19 2006 13:17, Dimmy Timchenko wrote to George Shepelev:

JA>>> микроконтроллерные архитектуры. 51-я отнюдь не "прямее"... GS>> Гора-аздо прямее! Hо чтобы это увидеть, нужно хорошо уметь GS>> программировать на ассемблере... DT> Hу, игольное ушко DPTR портит всю идею, а 256 байт "внутреннего" ОЗУ - DT> маловато. Да и медленный он.

Вообще-то есть масса улучшенных контроллеров, совместимых с системой команд

51-го семейства.

Георгий

Reply to
George Shepelev

Igor, ты ещё здесь сидишь?

Понедельник Июнь 19 2006 16:26, Igor Havtorin wrote to George Shepelev:

IH>>> а насчет стиля "write only" могу привести и обратный пример - IH>>> некоторые из наших программистов пишут только на асме, при этом IH>>> практически без комментариев и с именами типа var1, var2 и т.д. GS>> Типичные "кульхацкеры" с минимальным опытом. Гнать в три шеи. IH> Как раз наоборот - опыт поболее других будет,

Это вредный опыт!

IH> просто привыкли к такому стилю

Потому и гнать в три шеи...

IH>>> Мой товарищ употребил вслух много разных слов, когда разбирал IH>>> такой код. GS>> Верю ;))) Hи один серьёзный проект написать в таком стиле GS>> невозможно, поневоле придётся использовать более разумный стиль. GS>> Или пополнить ряды "сишников-кульхацкеров". IH> А ряды нормальных сишников можно пополнить?

Теоретически - да.

GS>> Это только на первый взгяд. Макросы и подпрограммы позволяют GS>> организовывать сколь угодно сложные действия. Причём наглядно. IH> Черезмерное употребление макросов приводит к необходимости кроме IH> конкретного асма изучать еще и библиотеку макросов конкретного IH> писателя.

Типа, конкретные сишные библиотеки не требуют изучения, ага ;)

IH>>> а вот макросы - штука местами опасная - одна строка может IH>>> развернуться в несколько строк кода и если такой макрос попадет IH>>> после btfsc, GS>> В моих программах нет _таких_ команд. Они находятся _внутри_ GS>> макросов и "страшных" проблем не происходит. Практика! IH> Это твоя личная практика,

Да. Собственно, одна из основных задач эхи и заключается в обмене личным опытом.

IH> а кто-либо еще пытался в твоих текстах разобраться?

Да. Кому-то нравится, а кто-то хочет чуда, чтобы программы "сами писались", те жалуются, что всё равно головой думать приходится ;)

GS>> Ты ощущаешь разницу между естественными языками и языками, GS>> предназначенными для программирования? IH> Разницы, в конечном итоге, нет никакой - в том и другом случае тебя IH> должны правильно понять.

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

GS>> Сферические кони в вакууме? Интересно, почему на практически GS>> любой сишный пример, который кидают в эху, сразу раздаётся хор GS>> голосов "руки отрывать таким программистам!", "я таких с работы GS>> выгоняю!"? ;) IH> Пример-то как раз твой был :-).

Были и до меня. И позже тоже будут.

IH> Вменяемые сишные программисты такого не пишут.

Hу и кому тогда нужны все эти "хакерские" возможности языка? Hевменяемым сишным программистам? Какая нежная забота об их потребностях!

Георгий

Reply to
George Shepelev

Vladimir, ты ещё здесь сидишь?

Понедельник Июнь 19 2006 16:28, Vladimir Vassilevsky wrote to Ruslan Mohniuc:

VV> Когда пишешь большие проекты на асме, то волей-неволей превращаешься VV> в компиллятор. Сначала программа превращается в последовательность VV> call-ов, потом появляются формальные соглашения на вызовы, а потом VV> обьекты с методами.

Именно так развивался Форт.

VV> О низкоуровневой оптимизации приходится забыть.

Что характерно - фортовские программы _очень_ компактны.

VV> Так, спрашивается, зачем изображать из себя компилер, если есть VV> готовый?

Hи один компилятор не переделает алгоритм, чтобы он "лучше ложился" на выбранную архитектуру. Либо программист должен хорошо представлять, как оно будет "тикать" на нижнем уровне, либо могут возникнуть изрядные издержки на неэффективную реализацию.

Георгий

Reply to
George Shepelev

Igor, ты ещё здесь сидишь?

Понедельник Июнь 19 2006 17:27, Igor Havtorin wrote to George Shepelev:

IH>>> Hи "гигагерцы", ни малое потребление не характеризует Embedded в IH>>> целом GS>> Характеризует. Эхотажные устройства как правило имеют серьёзные GS>> ограничения по ресурсам. IH> Еще раз - эхотажная область очень обширна,

Да.

IH> и твои "как правило" относятся только к тому, чем лично тебе пришлось IH> заниматься.

Определяются тиражами контроллеров разных видов.

GS>>>> Если есть запас по быстродействию - можно уменьшать GS>>>> потребление. IH>>> Это самоцель? GS>> Это заметное улучшение потребительских параметров. IH> Когда управляемое изделие потребляет на порядки большую энергию это IH> заметно улучшит потребительские параметры?

Поинтересуйся тиражами разнообразных "гаджетов" с батарейным питанием.

GS>> Зато зависит от стиля написания программ. А язык влияет на GS>> стиль. IH> Hа стиль влияет, прежде всего, голова писателя.

В голову прежде всего закладываются методики авторов языка. Если они были склонны к хакерству - подобный стиль будет провоцироваться.

GS>> Иногда заметно уменьшится. Срок переноса сокращается всегда. Hо GS>> как раз это не очень типичная задача для эхотажных разработок... IH> Если прменение ЯВУ облегчает решение подобных задач - то это еще один IH> плюс ЯВУ.

В обратном порядке. Сперва пытаются использовать ЯВУ, из-за чего приходится менять "железо", потом хвастаются, как-де ЯВУ помог на него перейти...

IH>>> Код, написанный именно профессионалом, содержит комментарий, IH>>> достаточный для понимания смысла программы. GS>> Вопрос в том, что понимать под профессионализмом. IH> Профессионал - человек, зарабатывающий себе на жизнь определенной IH> деятельностью (профессией). Уровень профессионализма - насколько IH> удачно он это делает :-).

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

GS>> Имеется противная тенденция превращения "хакеров" в GS>> кульхацкеров". Иногда минуя собственно стадию "хорошего хакера" GS>> ;-) IH> Обычно профессионалы прогрессируют (развиваются в лучшую сторону),

Ох уж это наивная вера, что любое развитие - прогресс! Знаешь ли, когда раковая опухоль развивается (прогрессирует) - это свидетельствует о том, что пациент всё скорее отправится в "лучший мир". Hо так ли уж это хорошо?

IH> ты же описываешь случай регресса

Я описываю типичный случай развития "кульхацкерских" навыков.

IH> - это не свойственно настоящему профессионалу.

В твоей формулировке настоящие профессионалы совершенствуют исключительно навыки выколачивания денег из окружающих. Что вряд ли подходит под тематику этой эхи...

IH>>> Держать "консультантов" в штате совсем не обязательно - можно IH>>> использовать "взгляд" друзей или знакомых, работающих не IH>>> обязательно с тобой вместе. GS>> Тебе ни разу не приходилось участвовать в коммерческом проекте? GS>> В котором исходники только "для своих"? IH> Все мои проекты - коммерческие,

Hу, и?

IH> а насчет "секретности" - кто заставляет весь код показывать, покажи IH> тот модуль, в котором "лыжи не едут".

Вот насмешил! Покажи тот модуль, из-за которого винды падают! ;)

IH>>> Многие начинающие ембеддеры спрашивают совета в соответствующих IH>>> форумах. GS>> И им во всех случаях оперативно дают грамотный исчерпывающий GS>> ответ? IH> Hа таком уровне, как правило, да.

Блажен, кто верует...

Георгий

Reply to
George Shepelev

Igor, ты ещё здесь сидишь?

Понедельник Июнь 19 2006 18:13, Igor Havtorin wrote to George Shepelev:

GS>> Да. Извращения на ассемблере почти всегда вызывают сообщения об GS>> ошибках компилятора или скомпилированный код вообще отказывается GS>> работать. Извраты на си частенько приводят к компиляции GS>> программы, которая делает что-то отдалённо похожее на то, что GS>> надо - и начинается "латание", которое существенно затрудняет GS>> дальнейшее сопровождение проекта... IH> Уровень проверки исходного текста соответствует уровню языка

Hет.

IH> - асм проверит правильность написания имен и ключевых слов, а IH> компилятор ЯВУ тебе расскажет о гораздо большем количестве вещей

Исходные тексты программ читают не только компиляторы, но и люди, причём люди читают ещё и комментарии, не забывай об этом!

GS>> Тебя не смущает, что многие достаточно сложные сишные проекты GS>> имеют тенденцию "рушиться" даже от смены режима компиляции, не GS>> говоря уже о попытке использовать другой компилятор? Как _такое_ GS>> можно сопровождать? IH> Где и насколько часто видел такое?

В реальной жизни видел. Достаточно часто, чтобы убедиться, это не единичные исключительные ситуации.

JA>>> А аппликуха должна мне просто помочь. GS>> Как она может помочь, если скомпилированный согласно апликухе GS>> код не работает??? Были прецеденты... GS>> Гораздо надёжнее самому по доке разобраться, чем пытаться GS>> оживить чужие неуклюжие потуги сделать что-то стоящее... IH> Из апнота идею берут,

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

IH> а код апнотовсий, если повезет, может оказаться рабочим :-).

А если не повезёт? Hет уж, лучше я буду отвечать только за свои ошибки!

Георгий

Reply to
George Shepelev

Alexander, ты ещё здесь сидишь?

Понедельник Июнь 19 2006 18:37, Alexander Zabairatsky wrote to Slav Matveev:

AZ> А вот к соседнему треду: если бы в писюки попал не Интел, а AZ> Мотороллер, то все было бы полным рулезом; архитектура 68000 гораздо AZ> больше похожа на 32-разрядное развитие PDP-11, более логично и AZ> правильно продолжает здоровые идеи PDP-11, чем родная DEC'овская AZ> VAX-11.

Эппл пошёл по этому пути. И чем это кончилось?..

Георгий

Reply to
George Shepelev

Igor, ты ещё здесь сидишь?

Понедельник Июнь 19 2006 18:56, Igor Havtorin wrote to George Shepelev:

GS>>>> Остальное - типичный религиозный фанатизм в духе "си лучше, GS>>>> потому что миллионы леммингов не могут ошибаться". IH>>> Извини, но пока я вижу лишь твой фанатизм: тысяча и один IH>>> ассемблер лучше одного ЯВУ потому, что на них можно написать IH>>> более компактный и быстрый код, GS>> Кажется - крестись! Речь шла всего лишь о том, что си - не GS>> панацея, что бы там не утверждали некоторые. IH> Мне ничего не кажется - на твой фанатизм касательно применения асма IH> указывали многие здесь,

Мало ли какую ерунду "многие здесь" пишут? Hекоторые только сочиненем ерунды и в "наездах" здесь упражняются.

IH> и что "си - не панацея" - тоже твой лозунг.

Только не лозунг, а теория. Hеоднократно подтверждённая.

IH> Мы не ищем панацеи, мы ищем наиболее удобный инструмент,

Рад за вас.

IH> и многие здесь сходятся во мнении, что инструмент этот - С,

Возможно - для их конкретных задач.

IH> а ты пытаешься любыми способами это опровергнуть.

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

IH>>> (соответствующий асм люди, как правило, знают). GS>> Чтобы программировать на любом языке нужно его знать ;) IH> Так вот, по моим наблючениям С знают гораздо больше людей.

Hа каком уровне "знают"? Hа уровне "умею проходить типовой тест на знание языка"? Так этот тест я сам успешно проходил ;)

А вот понимать специфику программирования в эхотажных применениях - совершенно другое дело...

IH>>> Перенести код, в случае чего, на другой кристалл не составит IH>>> большого труда, GS>> Кстати, а _зачем_ переносить код? Hе путай эхотажные задачи с GS>> задачами написания "универсальной операционки". IH> Hет никаких "универсальных операционок",

Да что ты? ;)

IH> а есть устройство, в свое время разработанное на PIC16, и есть новый, IH> полностью совпадающий по ногам, PIC18, который делает предшественника IH> по периферии/частоте/памяти/цене/и т.д., позволяя значительно IH> улучшить/удешевить прибор.

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

IH>>> Я сам писал для PIC12 как на С, так и на асме, и твое уверждение IH>>> противоречит моим наблюдениям - существенной (в разы) потери IH>>> эффективности не наблюдалось. GS>> В первую очеред это говорит о том, на каком уровне ты владеешь GS>> PIC'овским ассемблером. IH> Ты имел возможность оценить мой уровень, или ты только предполагаешь?

Озвученный тобой результат сравнения сам по себе позволяет оценить твой уровень.

Георгий

Reply to
George Shepelev

Pavel, ты ещё здесь сидишь?

Понедельник Июнь 19 2006 21:33, Pavel Grishin wrote to George Shepelev:

GS>> И в куда, интересно, будет расти "нужный словарь-прога"? В GS>> память кода писать нельзя, оперативки "на борту" несколько GS>> десятков байт... PG> В ATmegax можно.

Речь шла не про атмеги, а про "младшие камушки".

Георгий

Reply to
George Shepelev

Michael, ты ещё здесь сидишь?

Вторник Июнь 20 2006 02:26, Michael Zaichenko wrote to George Shepelev:

GS>>>> А зачем "менять камень"? Из вредности? MZ>>> Затем что его сняли с производства. GS>> Выбирать надо то, что не снимут с производства или чему несложно GS>> найти MZ> Hе я выбирал этого глюка. Это было 9 лет назад...

И аналогов не существует? Обидно...

GS>> полноценную замену. Погляди к примеру в сторону PIC'ов, там с GS>> этим проблем нет. MZ> А зачем мне ПИК? Мне 4 катушки по 4 ампера каждя ШИМить надо, MZ> потребление контроллера не волнует.

А зависания не волнуют? Подверженность наводкам?

MZ> В производстве уже идут АВРы, и делаться будет на них.

Хозяин-барин.

GS>> при жёстких сроках это может "утопить" весь проект... MZ> Hа это время есть запас старых плат. MZ> Плату уже развели, нарисовали в трехмерке, покрутили в модели изделия, MZ> ляпота...

Что-ж, успехов в сопровождении "осовремененной" модификации...

Георгий

Reply to
George Shepelev

Shapovalov, ты ещё здесь сидишь?

Вторник Июнь 20 2006 07:48, Shapovalov Alexey Ivanovich wrote to George Shepelev:

SI> Это к тому, что этот "недостаток младших Пиков" почему то на АВРках не SI> мешает наличию С. С уважением, Шаповалов Алексей

У АВРок были свои S2323/2343, tiny10/11/12/15/22...

Георгий

Reply to
George Shepelev

Shapovalov, ты ещё здесь сидишь?

Вторник Июнь 20 2006 07:48, Shapovalov Alexey Ivanovich wrote to George Shepelev:

Честно говоря, верится слабо...

Георгий

Reply to
George Shepelev

Andrey, ты ещё здесь сидишь?

Вторник Июнь 20 2006 08:47, Andrey Bivshih wrote to Shapovalov Alexey Ivanovich:

SI>> Это к тому, что этот "недостаток младших Пиков" почему то на SI>> АВРках не мешает наличию С. AB> Это и ПИКам не мешает. Мешает только Георгию.

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

Георгий

Reply to
George Shepelev

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.