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

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

Четверг Июнь 15 2006 20:42, Andrey Bivshih wrote to George Shepelev:

GS>> Ещё остались слова "не пробовал и не собирается пробовать". GS>> Повторяю, лгать нехорошо! AB> Я эту эху читаю с 1999 года, и все время ты ведешь священную войну AB> против Си. Раз за такой срок не собрался еще его изучить, то можно AB> сказать, что и не собираешься.

Давно изучил. И убедился, что он отнюдь не является панацеей, о чём в эхе снова завели привычную сказку...

AB> Так что лжи тут нет.

Была именно твоя ложь. Впредь воздерживайся...

Георгий

Reply to
George Shepelev
Loading thread data ...

Здравствуйте

Andrey Bivshih пишет: Всё поскипал, вот подтверждения для предложения по занесению Георгия и его отношение к C, USB и прочего в FAQ. Георгий не обижайся.

С уважением, Шаповалов Алексей

Reply to
Shapovalov Alexey Ivanovich

Здравствуйте

Alex Kocharin пишет:

Хм, и правда что-то есть, правда не запустилось. Посмотрю на чистой системе. Спасибо. С уважением, Шаповалов Алексей

Reply to
Shapovalov Alexey Ivanovich

Здравствуй, Alex Kocharin! июня месяца пятнадцатого дня ты писал(а):

IH>> Я нигде не призывал сочинять "сверхкомпактный" сишный текст. IH>> "Кульхацкерский" стиль одинаково вреден на любом языке, не надо IH>> пытаться написать весь код функции одним сверхсложным выражением - IH>> разбей на несколько простых частей.

AK> "Да, каждая отдельная часть получается простой. Но при этом их AK> взаимодействие становится гораздо более сложным ... Представьте себе AK> человеческий мозг. Каждая его составляющая проста, но их взаимодействие AK> превращает мозг в очень сложную систему. В этом-то всё и дело: целое AK> больше частей. Если взять проблему, разделить ее пополам и сказать, что AK> каждая половинка вполовину проще, то при этом вы игнорируете сложность AK> интерфейса между половинками."

AK> (c) Линус Тордвальдс, о недостатках концепции микроядра.

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

С уважением, Игорь Хавторин (ака Gary). E-mail: fido_gary собака gfm точка ru

Reply to
Igor Havtorin

Hello Jurgis.

Tue Jun 13 2006 21:16, Jurgis Armanavichius wrote to Igor Havtorin:

IH>> И я с него начинал - видимо в СССР Turbo C (Borland C) был "народным" IH>> инструментом.

JA> Истинно так! :-) Может быть кто-то попробовал другие инструменты, но JA> Борланд как-то очень органично влился в широкие народные массы xUSSR JA> :-)

Hо паскаль у них явно лучше получился. :)

Dimmy.

Reply to
Dimmy Timchenko

Привет!

Wed Jun 14 2006 22:14, Alexander Zabairatsky wrote to Jurgis Armanavichius:

IH>>> И я с него начинал - видимо в СССР Turbo C (Borland C) был IH>>> "народным" инструментом. JA>> Истинно так! :-) Может быть кто-то попробовал другие инструменты, но JA>> Борланд как-то очень органично влился в широкие народные массы xUSSR JA>> :-) AZ> Борланд влился своим Трупо-Паскалем, черт его подери! :-Ё И именно AZ> из-за него на просторах экс-СССР наблюдается такое засилье паскалянтов.

Hе думаю. Я читал, что Паскаль широко применяется в учебном процессе. Хотя точно не уверен.

AZ> Впрочем, турбо-С++ 1.0, если не пользовать его приплюснустость, как AZ> система программирования на чистом С был _очень_ неплох в свое время...

А я уже не помню, С++ он был или просто С... Просто он мне очень сильно понравился удобством использования :-) У меня тогда ведь вообще никаких IDE не было, коммандными файлами пользовался. А тут такая крутизна! :-)

Юргис

Reply to
Jurgis Armanavichius

Привет!

Fri Jun 16 2006 01:29, Alex Mogilnikov wrote to Jurgis Armanavichius:

JA>> Hу и стеков же у тебя! Это для мультизадачного режима? AM> Это процессорное ядро такое - у него при смене режимов работы часть AM> регистров автоматически подменяется, в том числе указатель стека. AM> Hапример в пользовательском режиме программа использует один стек, AM> возникло исключение (например IRQ) - ядро переходит в режим IRQ и AM> подменяет указатель стека на другой, в результате обработчик IRQ AM> использует свой собственный IRQ стек. Вернулись из обработчика IRQ в AM> юзерский режим - регистры переключились обратно и прерванная программа AM> продолжает использовать юзерский стек.

Понял. Интересная система! :-) Я с такими пока еще не сталкивался.

Юргис

Reply to
Jurgis Armanavichius

Привет!

Thu Jun 15 2006 10:52, George Shepelev wrote to Jurgis Armanavichius:

JA>> Это - конечно! Особенно, если список всяческих регистров занимает JA>> несколько страниц документа мелким шрифтом :-) Я сейчас в очередной JA>> раз с этим столкнулся... Радует, правда, то, что чаще всего JA>> большинство регистров вменяемо инициализируется по ресету. Тогда можно JA>> по-началу разобраться только с нужными регистрами. GS> Я бы на это не закладывался! Ибо ловился с нелогичной инициализацией GS> по ресету на 16F877 и 89C2051 :-/

Конечно! Просто на начальном этапе освоения это помогает, а потом все-равно придется досконально разобраться. Особенно, если какие-то трудности полезут.

Юргис

Reply to
Jurgis Armanavichius

Привет!

Fri Jun 16 2006 13:07, Olga Nonova wrote to Jurgis Armanavichius:

JA>> :-))) Все веселее и веселее :-) То вы упрекаете за использование ЯВУ, JA>> то вам не понутру работа с ассемблерным файлом. Вы уж там у себя как-то JA>> определитесь. А то совсем уж криво выглядит... ON> Ответ не по существу. Перевод стрелок на оппонента. Слив засчитан.

:-))) Считайте, считайте!

ON>>> Бог миловал,- я никогда не занималась массовым выпуском чего-либо. JA>> Hу вот. Все встает на свои места :-) Что-то ваш коллектив прокалываться JA>> стал... Промашечка вышла! :-) ON> В чем промашка? Ответ только по существу.

Так вам любой не понравившийся ответ - сразу попугайское: "Слив засчитан!" :-)))

JA>> Ложь от начала и до конца :-) Лучше уж скажите, что кто-то из вашего JA>> коллектива учавствует в разработке каких-то наукообразных стендов,где JA>> абсолютно не важны большинство вопросов эффективности ембеддедных JA>> разработок, о которых мы тут частенько беседуем :-) ON> Отучаемся гнусно измышлять небылицы. Гораздо проще спросить, чем ON> конкретно занимается человек.

Хорошо, последую вашему совету, спрошу: "Чем конкретно вы занимаетесь?". Уточняю, интересует тематика эхи, а не свободное время или хобби. Только как-то я сомневаюсь, что вы правду скажете...

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

ON>>> У Вас случайна путаница Ассемблера с Макроассемблером? Разницу знаете? ON>>> Или с машинных кодов сразу на ЯВУ пересели и теперь плюетесь в сторону ON>>> ассемблера? JA>> :-))) Если я написал кросс-ассемблер, а потом несколько лет работал с JA>> макроассемблером, то как вашему коллективу кажется, знаю я ответ на JA>> этот вопрос или нет? ;-) ON> Hигде в предыдущих Ваших письмах не заходила речь про макроассемблер, ON> а всегда только звучало: Ассемблер-говно, зато ЯВУ- рулез форева.

:-))) Все ясно: ваш коллектив просто не умеет читать написанного! Ибо я никогда не называл язык Ассемблера говном :-) А что ЯВУ - рулез фарева, то это истинная правда. Просто вам не понять этих вещей по той понятной причине, что вы ничего в этих вопросах не смыслите :-)

Кстати, вашему коллективу известно, что язык Ассемблера относится к конкретному процессору? И вам известно, что такое макроассемблер? Я очень сильно подозреваю, что вам это неизвестно :-)

ON> Из этого однозначно следует - Вы не владеете техникой программирования ON> в макросах ассемблера, а ЯВУ воспринимаете исключительно, как средство ON> облегчения набора исходного текста.

Бред :-)

ON> Извините за прямоту, но слив опять засчитан.

:-))) Ох-хо-хо... Hасмешили вы меня :-) Счетовод вы наш коллективный...

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

Юргис

Reply to
Jurgis Armanavichius

Здравствуйте, Уважаемый Jurgis!

Thu Jun 15 2006 22:58, Jurgis Armanavichius wrote to Olga Nonova:

JA>>> ассемблерный текст этого самого стартапа и добавлю туда то, что JA>>> понадобится. Ферштейн? ON>> Ферштейн-то оно фершетйн- мол, лазите в ассемблерный текст стартапа, ON>> который требует от залезающего очень высокой квалификации в знании как ON>> раз ассемблера и архитектуры кристалла.

JA> :-))) Все веселее и веселее :-) То вы упрекаете за использование ЯВУ, JA> то вам не понутру работа с ассемблерным файлом. Вы уж там у себя как-то JA> определитесь. А то совсем уж криво выглядит...

Ответ не по существу. Перевод стрелок на оппонента. Слив засчитан.

ON>> И потом, поясните это самое Ваше "немножечко разобраться"? Сколько надо ON>> потратить времени свежему программисту на Си, чтобы наконец ошарашенно ON>> понять- стандартную библиотеку stdlib использовать нельзя в ON>> микроконтроллерах с константами во флэше? Вы, например, сколько ON>> потратили? Или по-примитивности программ пока не дошли до этого этапа ON>> развития?

JA> А вам стоит объяснять? Вы же не владеете вопросом! Вы вообще знаете, что JA> такое флэш? ;-)

Уход от ответа. Перевод стрелок на оппонента. Слив засчитан.

ON>> Демагогия и уход от тяжелых вопросов бытия. Я не про ассемблер, а про ON>> нестандартный Си в Ваших кристаллах.

JA> У меня есть нестандартный Си в моих кристаллах? Побойтесь Бога, Мадам!

Увод разговора в сторону. Перевод стрелок на оппонента. Слив засчитан.

ON>> Бог миловал,- я никогда не занималась массовым выпуском чего-либо.

JA> Hу вот. Все встает на свои места :-) Что-то ваш коллектив прокалываться JA> стал... Промашечка вышла! :-)

В чем промашка? Ответ только по существу.

ON>> Товар мой штучный, умственный и дорогостоящий. Поэтому некода ON>> тратить время на разбирательства в нестандартном Си микроконтроллеров.

JA> Ложь от начала и до конца :-) Лучше уж скажите, что кто-то из вашего JA> коллектива учавствует в разработке каких-то наукообразных стендов, где JA> абсолютно не важны большинство вопросов эффективности ембеддедных JA> разработок, о которых мы тут частенько беседуем :-)

Отучаемся гнусно измышлять небылицы. Гораздо проще спросить, чем конкретно занимается человек. Заодно, может сподобитесь сформулировать критерий "эффективности ембеддедных разработок"? Страсть, как интересно.

ON>> Я просто возьму кристалл или даже целиком готовый модуль с firmware, ON>> чтобы для него писать на стандартном Си или другом ЯВУ, в котором как ON>> можно больше готовых прикладных наработок.

JA> Вот именно! Сами-то вы ничего ембеддедного разработать не способны :-) JA> А что касается строительства какой-нибудь научно-исследовательской JA> аппаратуры, разработки стендов, конструирования системы для научных JA> исследований - то любому грамотному инженеру понятно, что построение JA> такой системы из готовых кубиков - самый верный и правильный путь. JA> Тут вы никакой америки не открыли.

Отучаемся строить гнусные теории и выводы на базе бредовых видений. Проще узнать, как оно на самом деле обстоит дело.

ON>> У Вас случайна путаница Ассемблера с Макроассемблером? Разницу знаете? ON>> Или с машинных кодов сразу на ЯВУ пересели и теперь плюетесь в сторону ON>> ассемблера?

JA> :-))) Если я написал кросс-ассемблер, а потом несколько лет работал с JA> макроассемблером, то как вашему коллективу кажется, знаю я ответ на JA> этот вопрос или нет? ;-)

Hигде в предыдущих Ваших письмах не заходила речь про макроассемблер, а всегда только звучало: Ассемблер-говно, зато ЯВУ- рулез форева. Из этого однозначно следует - Вы не владеете техникой программирования в макросах ассемблера, а ЯВУ воспринимаете исключительно, как средство облегчения набора исходного текста. Это и есть примитив, который просвечивает в каждом Вашем послании. Извините за прямоту, но слив опять засчитан.

Всего Вам Хорошего Ольга

Reply to
Olga Nonova

Здравствуйте, Уважаемый Jurgis!

Thu Jun 15 2006 22:58, Jurgis Armanavichius wrote to Olga Nonova:

ON>> Зачем? Очередной баг? Почему нельзя подождать до после стартапа, когда ON>> можно запускать нормальный анализ причин ресета?

JA> Как я неоднократно говорил, вы ни бельмеса не смыслите в вопросах, про JA> которые тут пафосно (и очень смешно) рассуждаете :-)

Ответ не по-существу. Перевод стрелок на оппонента. Слив засчитан.

JA>>> А обсуждали мы вопрос: какие бывают случаи, когда нужно выполнить JA>>> что-нибудь на очень ранней стадии запуска программы. Т.е. сразу JA>>> после ресета. Приводились варианты включения ОЗУ (безусловно надо), JA>>> перемещения кода, причина ресета и еще несколько. ON>> Инициализацию памяти и стека производит стартап по указу директив ON>> линкера.

JA> Снова в лужу... Подозреваю, что вы даже не представляете, что сейчас JA> изрекли? ;-)

Ответ не по-существу. Перевод стрелок на оппонента. Слив засчитан.

ON>> Я не вижу необходимости туда вслезать со своими правилами.

JA> Истинная правда! Вы вообще не видите тех проблем, с которыми JA> сталкивается ембеддедщик.

Отучаемся мнить себя ембедерами. Слив засчитан.

ON>> А причины ресета в приличных чипах хранятся бесконечно долго,

JA> Чушь.

Ответ не по-существу. Слив засчитан.

ON>> Вот и получается- лазить в стартап практически незачем. ON>> Так только, поразвоекаться из академического интереса.

JA> Во-первых, вы не знаете что такое и для чего служит стартап :-)

Бред. Перевод стрелок на оппонента. Слив засчитан.

JA> Во-вторых, я еще вначале обсуждения сказал, что мне залезать и JA> править стартап пока не было нужно. Hо когда коллеги мне привели JA> практические случаи, когда это не просто нужно, а совершенно JA> необходимо - я их понял, т.к. занимаюсь тем же самым делом, что JA> и они.

Придется напомнить. В начале обсуждения разговор шел- трудно или просто работать с Си для микроконтроллеров, нужно ли знание ассемблера ембеддеру или можно обойтись? Вы, по примитивности своей деятельности, выступали только за ЯВУ и плевались в сторону ассемблера. Вам и было указано много случаев, когда без ассемлера не обойтись. Hа что Вы, опять же вследсвие своей примитивности, ответили: "Ерунда! Hичего страшного!" И нисколечки не изменили своей упертой позиции в отношении программирования на ассемлере, а вмесио этого стали уводить вопрос в сторону методом гнусных измышлений про коллектив авторов и чем они занимаются. В очень некрасивом свете, Юргис, Вы тут представляете всех литовцев.

Всего Вам Хорошего Ольга

JA> P.S. А еще мне очень смешно наблюдать, как вы тупо, безголово JA> и совершенно безуспешно пытаетесь вбить клинья в нашы ряды...

Паранойя - национальная болезнь в Литве.

Reply to
Olga Nonova

Hi Olga!

16 Jun 06 13:07, Olga Nonova wrote to Jurgis Armanavichius:

JA>> :-))) Если я написал кросс-ассемблер, а потом несколько лет JA>> работал с макроассемблером, то как вашему коллективу кажется, JA>> знаю я ответ на этот вопрос или нет? ;-)

ON> Hигде в предыдущих Ваших письмах не заходила речь про макроассемблер, ON> а всегда только звучало: Ассемблер-говно, зато ЯВУ- рулез форева. Из ON> этого однозначно следует - Вы не владеете техникой программирования в ON> макросах ассемблера, а ЯВУ воспринимаете исключительно, как средство ON> облегчения набора исходного текста. Это и есть примитив, который ON> просвечивает в каждом Вашем послании. Извините за прямоту, но слив ON> опять засчитан.

Барышня, вот кусочек моего кривого ассемблерного кода, не могли бы вы его макросами упростить?

; while ( TRUE ) { ; s1--; ; t = s1&1; ; if( (s1&8) == 0 ) t<<=1; ; if( (s1&0xF0) != 0) t=0; ; led = (led&0xFC) | (t|m1); ; if( s1 == 0) s1=CONST1; ; led = led & ( 0xF3 | m3); ; s2--; ; t = (s2&1) << 2; ; if( (s2&8) == 0 ) t<<=1; // <<=2, GP4. ; if( (s2&0xF0)!=0 ) t=0; ; led = led | (t&m4); ; if( s2 == 0 ) s2=CONST2; ; if( --s3 == 0 ) led ^= (L3+L4)&m3; ; }

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

научите меня макросами тоже самое написать в читаемом и понятном виде без нагромождения битовых операторов?

Slav.

Reply to
Slav Matveev

Пpивет Jurgis! Jurgis Armanavichius --> Vitaliy Romaschenko ( Wed Jun 14 2034, 10:19 )

JA> Это вообще удивительно, какие бывают совпадения. У меня тоже JA> разок-другой было, что хочется что-то поставить, бац!, оно и JA> появляется. Правда, не так часто, как хотелось бы... :-)

Это надо специально заклинания пpидyмывать. :)

Я пеpед началом pаботы над новым пpоектом, когда yже понял чего от меня хотят и чего я хочy от заказчика ;), лезy в инет.

И долбаю его до тех, пока он мне похожее не отдаст!

Вот заклинание (это стpока для поиска :) имеет иногда далёкyю от человеческого текста писанинy после втоpой сотни запpосов...

-= Брест. Павел Гришин =-

... Там, где не действует сила закона, начинает действовать закон силы

Reply to
Pavel Grishin

 X-Virus-Scanned: amavisd-new at bezeqint.net

Hello, Olga Nonova! You wrote in conference fido7.ru.embedded to Jurgis Armanavichius on Fri, 16 Jun 2006 09:07:37 +0000 (UTC):

ON> Ответ не по существу. Перевод стрелок на оппонента. Слив засчитан.

Ты не оппонент, ты клоун местный, счетчик слив. Сливы закончатся, будуте финики считать?

ON> Отучаемся гнусно измышлять небылицы. Гораздо проще спросить, чем

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

ON> конкретно занимается человек. Заодно, может сподобитесь ON> сформулировать критерий "эффективности ембеддедных разработок"? ON> Страсть, как интересно.

Прибыль. Ничего интересного. С точки зрения занимающегося имим как правило наемного работника - меньше сил за ту же зарплату потратить.

ON> Отучаемся строить гнусные теории и выводы на базе бредовых видений. ON> Проще узнать, как оно на самом деле обстоит дело.

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

ON> Hигде в предыдущих Ваших письмах не заходила речь про ON> макроассемблер, а всегда только звучало: Ассемблер-говно, зато ЯВУ- ON> рулез форева. Из этого однозначно следует - Вы не владеете техникой ON> программирования в макросах ассемблера, а

Эту бредовую идею вы почерпнули у Жоры нескольколетней давности, тупиковость ее очевидна. Использование макропроцессора для создания своего языка неэффективно втройне. Макропроцессор убог, он работает с текстом, а не с объектами программы. Макропроцессор неэффективен, трудносопровождаем и и порождает избыточный код. Ну и последнее - авторы языков и компиляторов профессионалы, а пользователи их накопили огромный опыт. У вашего убогого поделия нет ни того ни другого.

ON> ЯВУ воспринимаете исключительно, как средство облегчения набора ON> исходного текста. Это и есть примитив, который просвечивает в каждом ON> Вашем послании. Извините за прямоту, но слив опять засчитан.

Мешок ваших фиников тоже учтен.

dima

formatting link

Reply to
Dmitry Orlov

 X-Virus-Scanned: amavisd-new at bezeqint.net

Hello, Olga Nonova! You wrote in conference fido7.ru.embedded to Jurgis Armanavichius on Fri, 16 Jun 2006 09:22:18 +0000 (UTC):

ON> Придется напомнить. В начале обсуждения разговор шел- трудно или ON> просто работать с Си для микроконтроллеров, нужно ли знание

Не труднее, чем для чего угодно еще. Просто есть своя специфика.

ON> ассемблера ембеддеру или можно обойтись?

Можно. Правка стартапа, далеко не всегда написанного на ассемблере не в счет, для этого глубоких знаний не нужно, да и не всегда это воообще нужно.

ON> Вы, по примитивности своей деятельности, выступали только за ON> ЯВУ и плевались в сторону ассемблера.

Вранье.

ON> вопрос в сторону методом гнусных измышлений про коллектив авторов и чем

Это не гнусные измышления, а очевидный факт.

ON> они занимаются. В очень некрасивом свете, Юргис, Вы тут представляете ON> всех литовцев.

Вот только национализма и шовинизма тут только и не хватало. А всех кого отродье вроде вашего коллектива тут представляет? Всероссийское общество убогих?

ON> Паранойя - национальная болезнь в Литве.

dima

formatting link

Reply to
Dmitry Orlov

Hello Andrey.

Wed Jun 14 2006 11:07, Andrey Arnold wrote to Alex Kocharin:

JA>>>> Владимир! Ты ведь не первый день в этой эхе. VV>>> Лет так пятнадцать. AK>> Это как так? :-)

AA> Он видимо имеет ввиду квази-предшественницу AA> relcom.ляляля.crosstools или как-то так тогда она называлась,

Да нет, в фидо просто RU.CROSSTOOLS. :) Эха была полупустая из-за стиля модерирования: тематика была слишком узкой, а отклонения карались. Тогда ваш покорный слуга создал эту эху. Теперь вот думаю - может, зря? :)

AA> но всё-равно 15 не набегает.

Это точно, видимо, порядка 10.

Dimmy.

Reply to
Dimmy Timchenko

Здравствуйте, Уважаемый Jurgis!

Fri Jun 16 2006 13:46, Jurgis Armanavichius wrote to Olga Nonova:

JA> Хорошо, последую вашему совету, спрошу: "Чем конкретно вы занимаетесь?". JA> Уточняю, интересует тематика эхи, а не свободное время или хобби. Только JA> как-то я сомневаюсь, что вы правду скажете...

Hу, раз сомневаетесь, то и говорить не стану. Зачем лишний раз травмировать человека?

JA> ... - бессмысленная трата времени. За сим откланиваюсь...

Hу, наконец-то вьехали. Долго же доходит до мозгов у прибалтийских народов.

Всего Вам Хорошего Ольга

Reply to
Olga Nonova

Пpивет Alex! Alex Kocharin --> Pavel Grishin ( Thu Jun 15 2034, 01:44 )

AK> А можешь провести эти байты? Интересно, однако...

Hе дyмаю что это бyдет дикий оффтопик, но есть эха SU.FOTRH: Давай или в мыло или тyда.

Hиже пpиводится адpесный интеpпpетатоp

callr: ; Точка CALL адpесного интеpпpетатоpа В этy точкy yпpавление ; пеpедается для того, чтобы начать интеpпpетацию очеpедного ; Фоpт-слова Так как yпpавление сюда пеpедается командой ; CALL, за котоpой сpазy следyет шитый код, адpес, с котоpого ; необходимо начать интеpпpетацию шитого кода находится на ; веpшине аpифметического стека (Его yказатель - pегистp SP) ; *********************************************************** dec bp ; Уменьшим yказатель стека dec bp ; возвpатов - pегистp BP mov word ptr [bp],si ; Сохpаним на стеке возвpа- ; тов стаpое значение Ука- ; зателя интеpпpетации - ; pегистpа SI pop si ; Восстановим с аpифмети- ; ческого стека новое зна- ; чение yказателя интеpпpе- ; тации, сохpаненное там ; машинной командой CALL на ; точкy CALL интеpпpетатоpа next: ; Точка NEXT адpесного интеpпpетатоpа Упpавление сюда пеpеда- ; ется командой JMP Точка иницииpyет выполнение очеpедного ; слова cld ; Сбpосим флажок напpавления lodsw ; Считаем в pегистp AX ад- ; pес следyющего слова, ко- ; тоpое надо выполнить, ; пpодвинем yказатель ин- ; теpпpетации jmp ax ; И пеpедадим yпpавление ; этомy словy return: ; Точка RETURN адpесного интеpпpетатоpа (иногда ее называют ; точкой EXIT) Эта точка завеpшает выполнение Фоpт-слова В ; данной pеализации она сведена в слово EXIT mov si,word ptr [bp] ; Восстановим стаpое значе- ; ние yказателя интеpпpета- ; ции, сохpаненное пpи ; входе в слово точкой CALL ; на стеке возвpатов inc bp ; Увеличим yказатель inc bp ; стека возвpатов jmp short next ; И - на точкy NEXT пpодол- ; жить pаботy по выполнению ; слова, вызвавшего только ; что завеpшившееся слово

Hапpимеp, слово, pассчитывающее дискpиминант квадpатного ypавнения, опpеделенное как: : DIS ( A B C --> B^2-4*A*C ) SWAP DUP * ROT ROT * 4 * - ; в шитом коде может быть пpедставлено следyющим обpазом:

dis: call callr ; Запyстить интеpпpетатоp ; для выполнения слова DIS dw swap ; Адpес SWAP dw dup ; DUP dw mult ; * dw rot ; ROT dw rot ; ROT dw mult ; * dw lit ; Слово, опеpанд котоpого - ; двyхбайтовое число, кото- ; pое необходимо положить ; на аpифметический стек dw 4 ; Опеpанд слова LIT dw mult ; * dw mines ; - dw exit ; EXIT ; Это слово скомпилиpовано ; словом ; (точка с запятой)

swap: pop ax ; Обменять местами два чис- pop bx ; ла с аpифметического сте- push ax ; ка push bx jmp next ; и пеpедать yпpавление ; точке NEXT для пpодолже- ; ния интеpпpетации

dup: pop ax ; пpодyблиpовать на аpифме- push ax ; тическом стеке число с push ax ; его веpшины jmp next

mult: pop ax ; Умножение двyх чисел с pop bx ; веpшины стека imul bx push ax jmp next

rot: pop ax ; Слово ROT pop bx pop cx push bx push ax push cx jmp next

lit: lodsw ; Полyчим число, скомпили- push ax ; pованное в шитый код сле- jmp next ; дом за вызовом lit ; Пеpедвинем yказатель ин- ; теpпpетации, чтобы интеp- ; пpетатоp не пытался "вы- ; полнить" это число

mines: pop ax ; Вычитание pop bx sub bx,ax push bx jmp next

exit: jmp return ; Слово, оpганизyющее выход ; из Фоpт-слова. Упpавление ; Пеpедается на точкy RETURN ; Далее пpодолжается выпол- ; нение слова, вызвавшего ; только что завеpшившееся.

-= Брест. Павел Гришин =-

... У кошки 4етыpе ноги: вход, выход, земля и питание. (с) компьютеpная мышка

Reply to
Pavel Grishin

Пpивет George! George Shepelev --> snipped-for-privacy@chesspartner.com ( Wed Jun 14 2034, 20:31 )

PG>>> Уже в 512 EPROM и 64 SRAM бyдет ФОРТ кpyтится запpосто. AK>> Примерчик не приведешь? AK>> По моим представлениям Форту нужно несколько кило кода... GS> Да и фортовским стекам в 64 байтах SRAM будет довольно тоскливо...

Hе очень. Для начала этого мало, пpидётся дyмать пpо стек.

-= Брест. Павел Гришин =-

... Касечтвенно и без очепяток наебpу лобые тескты.....

Reply to
Pavel Grishin

Пpивет George! George Shepelev --> Pavel Grishin ( Wed Jun 14 2034, 20:47 )

PG>> Давай посчитаем на пальцах хто тyт 1000000 девайсов выпyстил. GS> "Хто тут" не скажу, а китайцы этим занимаются уже много лет ;)

Китайцы тоpговцы. А мы полyчаем yдовольствие даже от pазового изделия с себестоимостью на *100%. :)

И мечтаем полyчить миллион yдовольствий! ;)

-= Брест. Павел Гришин =-

... Сидим за компом, я и пивo

Reply to
Pavel Grishin

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.