1. и 2. Да даже в вашем коде есть константа ZERO, о чем тогда может быть речь? Константы не обязаны располагаться в r0 и r1. TI — это не шарашкина контора, у них есть высококлассные специалисты. Их исследованиям можно верить. Это авторитетный источник в отличие от меня, анонимуса в интернете.
3. Выравнивание начала блока данных совсем не означает, что это приводит к потере количества памяти. Все что у вас входит, пожалуйста, размещайте в памяти перед выровненным блоком, если есть в этом потребность. Не путайте это с выравниванием ВНУТРИ структур.
Когда постоянной памяти много, а программа небольшая, то этим вообще не стоит заморачиваться.
4. Это классический пример оптимизации, тут даже комментировать нечего.
Ну дискуссия началась с вашего мнения, что константы не нужны, а закончилась: "… а константа может быть назначена один раз и использоваться для группы операций...".
:-)
Вы хотите доказать, что подход к оптимальному программированию на ассемблере не зависит от системы команд процессора и количества и возможностей регистров или все это не имеет отношения к архитектуре процессора?
Совсем нет, оптимизация — это хорошо, если она к месту и от нее есть реальная польза. Если, как я показал в примере ранее, это получается не оптимизация, а самообман, то от нее только вред.
Я нахожусь на том этапе развития, когда я лучше напишу типовой понятный или переносимый код, а не буду использовать хаки и костыли, что бы сэкономить никому не нужные такты.
Хаки, костыли и экономия тактов — это удел или компилятора, или когда выхода другого нет.
Так же замечу, что когда я пишу «sts MY_VAR, ONE», или что-то подобное, то я не такты экономлю, а свое время.
… Что касается Вашего примера. Из 4 команд и 5 тактов по факту нужны 2 команды и 3 такта против 4 команд и 4 тактов...
Да неужели? А давайте еще такой пример рассмотрим. Вход в R0, нужно раскидать значения по R0 и R1.
Что получим?
mov R16, R0
ldi R17,0x10
mul R16,R17
swap R0
получили те же 5 тактов и 2 лишних регистра.
В описании задачи нет условия обязательного размещения результата в конкретном регистре (кто мешает производить последующие операции с результатом не таская данные с места на место?
В исходном предложении нет четкой формулировки, поэтому я ее сделал на свое усмотрение. Ничего в ней экстраординарного нет. А регистры с R16 и выше более функциональные для последующей обработки, чем R0..R15.
А вот зачем автор предлагает хранить где-то единицу — неизвестно.
А я выше пояснил: потому что единица входит в число наиболее часто используемых констант при написании программ. И ссылку привел на авторитетный источник — документацию по TI MSP430.
На счет mul и работы с флешом — возможно, посчитали что это достаточно редкие операции
Мне тоже ни разу не понадобился mul. По-моему, там такая реализация, полезность которой стремится к нулю, насколько я помню.
Но несмотря на это, даже MUL для хранения и использования констант проблемы не представляет, т.к. всегда константе можно назначить другой регистр.
Кинематографистам избавиться от «рванины» помогает моушн-блюр.
Вот вы упомянули выдержку, только в киносъемке немного другие термины.
Аналогом выдержки там является угол раскрытия (или коэффициент обтюрации), см. Обтюратор (оптика).
… Кроме выдержки, от угла раскрытия обтюратора зависит передача плавности движения на экране. Смаз быстродвижущегося изображения при большом угле раскрытия уменьшает прерывистость движения на экране…
Изначально, наличие угла раскрытия — это следствие технических ограничений киноаппаратуры. Потом режиссеры взяли это на вооружение, т.к. им иногда хочется, что бы у зрителя картинка дергалась. Современная аппаратура не ограничивает угол раскрытия, он может быть и 360 градусов.
Чем выше угол раскрытия, тем меньше дергается картинка и выше плавность картинки. И это играет намного бОльшую роль, чем 24/30/60 кадров в секунду.
Т.е. спор не о 30/60 FPS, а о фактической смене угла раскрытия в разрез желанию (задумке) режиссера, что картинка должна «дергаться».
Вы не пояснили как лживый вброс может что-то показывать
Так я в ответ на лживые вбросы и фейки даю факты. Они и показывают, что вбросы — это лишь вбросы, а у автора вбросов, возможно, не все в порядке с головой.
Вот, например, есть такая фотография, которая тоже является фактом, а не каким-то фейком:
Астронавт Нил Армстронг вместе с членами экипажа «Аполлона-11» Эдвином Алдрином-младшим и Майклом Коллинзом идет в составе церемониальной процессии к верхнему алтарю Вашингтонского собора, что бы приподнести в дар собору кусочек грунта, привезенного с Луны.
И что, законом запрещено дарить лунный грунт церкви? Или, астронавтам запрещено участвовать в церковных процессиях? Нет.
Нормальный человек посмотрит и скажет: ну да, было такое. Никак это слетать на луну не помешало.
А у неадеквата от такого фото может и пукан порваться.
А почему космические костюмы муллы и буддийского монаха не представили?
Так это фейк пятилетней давности. Фейковая новость с отфотошопленной фотографией.
Ничего такого в реальности не было.
Мусульмане и буддисты ведь тоже налоги платят
Здесь можно было другую претензию предъявить: мы платим налоги, а создатели и распространители фейковых новостей не понесли установленную законом ответственность.
Но этот фейк не попадает под КоАП РФ Статья 13.15. и пользователю palec2006 штраф до 100 тыс. руб. пока не светит.
То, что у кого-то есть суеверия (в данном случае; также: негров линчуют, пошлину взимают, демонстрации разгоняют) не является оправданием аналогичных проявлений у нас.
У вас неверные исходные утверждения и, соответственно, неверные выводы. Во первых, вы пишите, как будто суеверия и религия — это что-то строго плохое.
Восприимчивость к «высшему» (будь то Господь Бог или Илон Маск) заложена в человеке на генетическом уровне и является результатом эволюции на протяжении десятков (а может и сотен) тысяч лет. Эта мутация позволила сделать сильнее человеческие группы и выжить, поэтому нельзя утверждать, что она вредная или бесполезная.
Во вторых, у вас есть неявное утверждение, что религия и наука несовместимы. Это совсем не так и мир науки и религии живет, по факту, параллельно. Каждый решает свои задачи. См., например, статью Религия и общество.
Там есть интересная картинка со статистикой для нобелевских лауреатов:
Суть в том, что ученый, инженер, врач и т.д. живет в реальном мире, который не ограничен формулами, а включает в себя личностные, социальные вопросы, несет в себе и радость, и трагедии и множество других проявлений.
В статье так же упомянут факт, что 76% американских врачей верят в Бога и 59% считают, что существует тот или иной вид загробной жизни. Естественно, такая ситуация имеет свои причины. У религии есть множество функций, в т.ч. компенсаторная (помогает человеку справиться с социальным и психологическим напряжением, успокаивает, приносит облегчение). Поэтому, в тех областях, где велико психологическое давление следует ожидать высокий процент верующих. Это, в т.ч.: медицина, армия, космические полеты.
Жить в тесной шумной консервной банке с одним коллективом и в постоянном напряжении — это суровое испытание.
Убивая религию вы рискуете попасть в то же положение, что попали китайцы, убив воробьев. Уничтожив птиц в борьбе за урожай, Китай получил голод, в котором погибло 10-30 миллионов человек.
В США IGWT пишут на банкнотах, но не заставляют военнослужащих добровольно-принудительно скидываться на храм
Я не могу прокомментировать случай скидывания на храм, т.к. не знаю подробностей. Полагаю, что это может быть единичный случай и нужно с ним разбираться.
Но могу сказать, что в армии США (и многих других странах) заставляют принимать присягу со словами о Боге.
У нас почти поголовно на работе в добровольно-принудительном порядке собирают деньги на 8 марта, вы же не бегаете по форумам и везде рассказываете, какие бабы — суки?
palec2006: не могу понять, на вас шапка горит, или противоположное место?
Я изначально предположил, что у вас разбомбило зад, раз вы приплели «Скафандр священника» к несвязанной теме статьи и не стал это озвучивать. Но ваш ответ окончательно убедил меня в этом.
Кто же еще выбегает на улицу и кричит «держите вора»? Только сам вор, и дым у вас идет со всех щелей.
Вот тут первый комментарий как раз вас четко характеризует:
… Первой широко известной молитвой, произнесенной перед стартом ракеты стала так называемая «Молитва Алана Шепарда». Готовясь к первому американскому пилотируемому суборбитальному полету 5 мая 1961 года Алан произнес ставшую исторической фразу «Dear Lord, don't let me f*ck up»...
… астронавт «Аполлона-15» Джеймс Ирвин после отставки стал проповедником и много лет миссионерствовал под девизом «Приход Иисуса на Землю важнее, чем высадка человека на Луну»...
Если вы, находясь в Москве, прокладываете в Google Maps маршрут по мосту и территории Крыма, то по-вашему, куда поставляется услуга построения маршрута? В Москву или в Крым?
Напрямую или косвенно в Крым, ведь вы не просто так строите маршрут, а собираетесь туда поехать.
Сервис построения маршрута по мосту и Крыму вне его абсолютно бесполезен.
А у вас еще много дурацких вопросов осталось? Задавайте сразу всем списком, чего волынку тянуть-то?
«Прокладывание маршрута по мосту и территории Крыма» — это, по-вашему, «экспорт, реэкспорт, продажа или поставка товаров, услуг или технологий в Крым»?
Да, это: "… supply… directly or indirectly… services ...".
«key symbolic steps» переводится, как «ключевые символичные шаги». Множественное число, потому что в фразе упоминается два шага: 1) «The construction of this bridge» переводится, как «строительство этого моста»; 2) «its official opening» переводится, как «его официальное открытие».
Слово «steps» (шаги) здесь означает не «движение ногой при ходьбе», а имеет смысл «единичные операции процесса», или «элементы процесса».
Шаги символичные, потому что кроме технической составляющей (транспортной артерии) имеют еще и важную идеологическую составляющую.
Если на украинском ТВ пропаганда с утра до вечера вещала, что никакого моста не может быть, это нереально, это мосфильм и т.п., то постройка и запуск автомобильной части моста нанесла большой урон этой пропагандисткой кампании.
А сам мост стал отдельной достопримечательностью региона. Это вам не стеклянный мост в Киеве, который треснул через день использования.
tyomitch: С какой это стати? В нём ни слова нет про «интеграцию».
Так вы сами-то документ читали?
...prohibited:
...the exportation, reexportation, sale, or supply, directly or indirectly, from the United States, or by a United States person, wherever located, of any goods, services, or technology to the Crimea region of Ukraine...
Вы как думаете, маршрут по мосту и территории Крыма святым духом был проложен?
3. Выравнивание начала блока данных совсем не означает, что это приводит к потере количества памяти. Все что у вас входит, пожалуйста, размещайте в памяти перед выровненным блоком, если есть в этом потребность. Не путайте это с выравниванием ВНУТРИ структур.
Когда постоянной памяти много, а программа небольшая, то этим вообще не стоит заморачиваться.
4. Это классический пример оптимизации, тут даже комментировать нечего.
* на флешке 8 Кб так можно разместить до 31 таблицы (31
= 8*4-1).
Привести пример чего, кода выравнивания данных? Вот:
На флешке 8 Кб так можно разместить до 23 таблиц.
Вот скриншот из отладчика:
Если сделать выравнивание только по 8 словам, это тоже упростит, сократит и ускорит программу.
Ниже пояснение с учетом вашей ошибки в оригинальном коде (который из-за ошибки не работает):
Вот вы поместили сюда свой код, но не сказали самого главного: с какой целью он написан в таком виде?
Вы пытались сделать наиболее компактный код, наиболее быстрый, совместимый, экономный по регистрам, из-за каких-то других ограничений?
В таком виде, в котором вы его представили, код явно не самый быстрый или компактный.
Если нужно написать наиболее компактный, то нужно выравнить таблицу преобразования.
Если нужно написать наиболее быстрый код, то нужно развернуть цикл.
Мой оптимизированный вариант содержал бы такой инициализирующий код:
Тело развернутого/размотанного цикла, оптимизированного по времени исполнения содержало бы код:
Тело цикла, оптимизированного по размеру содержало бы код и не требовало бы ни одного лишнего регистра, кроме X, Y, Z и счетчика:
Оптимизированный вариант тела цикла с MUL ну ничем не лучше других вариантов, использует лишние регистры и константу:
Ну дискуссия началась с вашего мнения, что константы не нужны, а закончилась: "… а константа может быть назначена один раз и использоваться для группы операций...".
:-)
Совсем нет, оптимизация — это хорошо, если она к месту и от нее есть реальная польза. Если, как я показал в примере ранее, это получается не оптимизация, а самообман, то от нее только вред.
Я нахожусь на том этапе развития, когда я лучше напишу типовой понятный или переносимый код, а не буду использовать хаки и костыли, что бы сэкономить никому не нужные такты.
Хаки, костыли и экономия тактов — это удел или компилятора, или когда выхода другого нет.
Так же замечу, что когда я пишу «sts MY_VAR, ONE», или что-то подобное, то я не такты экономлю, а свое время.
Да неужели? А давайте еще такой пример рассмотрим. Вход в R0, нужно раскидать значения по R0 и R1.
Что получим?
получили те же 5 тактов и 2 лишних регистра.
В исходном предложении нет четкой формулировки, поэтому я ее сделал на свое усмотрение. Ничего в ней экстраординарного нет. А регистры с R16 и выше более функциональные для последующей обработки, чем R0..R15.
Прикалываетесь, что ли?
Если на входе данные в R16 и результат нужно закинуть в R16 и R17, то без MUL будет код на 4 такта и без использования лишних регистров:
а с MUL будет на 5 тактов и с использованием двух лишних регистров R0 и R1:
Гарвардская архитектура — это не о системе команд, и даже не о способе адресации, причем здесь это?
Без констант можно обойтись где угодно. Типовые операции для использования 0/1 — это использование логических переменных в памяти FALSE/TRUE.
А я выше пояснил: потому что единица входит в число наиболее часто используемых констант при написании программ. И ссылку привел на авторитетный источник — документацию по TI MSP430.
Мне тоже ни разу не понадобился mul. По-моему, там такая реализация, полезность которой стремится к нулю, насколько я помню.
Но несмотря на это, даже MUL для хранения и использования констант проблемы не представляет, т.к. всегда константе можно назначить другой регистр.
Допустим, вы снимаете на видео белую стену, по которой вы водите красным лазером.
Если у вас небольшой угол раскрытия, то совокупность кадров вам даст такую картину:
Но если у вас угол раскрытия будет 360 градусов, то то совокупность кадров вам дает такую картину:
Суть дерганья картинки в кино как раз в этом (верхний случай).
Количество FPS и абсолютное значение выдержки на этот эффект не влияет!
Вот познавательная статья на эту тему: www.red.com/red-101/shutter-angle-tutorial
Вот вы упомянули выдержку, только в киносъемке немного другие термины.
Аналогом выдержки там является угол раскрытия (или коэффициент обтюрации), см. Обтюратор (оптика).
… Кроме выдержки, от угла раскрытия обтюратора зависит передача плавности движения на экране. Смаз быстродвижущегося изображения при большом угле раскрытия уменьшает прерывистость движения на экране…
Изначально, наличие угла раскрытия — это следствие технических ограничений киноаппаратуры. Потом режиссеры взяли это на вооружение, т.к. им иногда хочется, что бы у зрителя картинка дергалась. Современная аппаратура не ограничивает угол раскрытия, он может быть и 360 градусов.
Чем выше угол раскрытия, тем меньше дергается картинка и выше плавность картинки. И это играет намного бОльшую роль, чем 24/30/60 кадров в секунду.
Т.е. спор не о 30/60 FPS, а о фактической смене угла раскрытия в разрез желанию (задумке) режиссера, что картинка должна «дергаться».
Что значит, «правильно пользоваться»? Что это за правила?
Никто и не говорит, что нужно хранить все константы. Как упомянул FForth, в MSP430 есть два константо-генерирующих регистра: R2 и R3.
Они дают возможность использовать шесть констант: -1, 0, 1, 2, 4, 8.
Пояснение, как это «работает»:
www.ti.com/lit/ug/slau144j/slau144j.pdf
Разработчики MSP430 упомянули, что единица входит в набор «six most used immediate values».
Я согласен с ними :)
Вы же не можете записать:
sts ... , 0
sts ... , 1
adc ... , 0
ldi R2, 1
но сможете:
sts ... , ZERO
sts ... , ONE
adc ... , ZERO
mov R2, ONE
Да и «clr Rx» и «mov Rx,ZERO» — это не эквивалентные по результату команды.
.def ZERO = r0
.def ONE = r1
;
; Инициализация модуля
;
;
; Константа 0
;
clr ZERO
;
; Константа 1
;
clr ONE
inc ONE
Так я в ответ на лживые вбросы и фейки даю факты. Они и показывают, что вбросы — это лишь вбросы, а у автора вбросов, возможно, не все в порядке с головой.
Вот, например, есть такая фотография, которая тоже является фактом, а не каким-то фейком:
Астронавт Нил Армстронг вместе с членами экипажа «Аполлона-11» Эдвином Алдрином-младшим и Майклом Коллинзом идет в составе церемониальной процессии к верхнему алтарю Вашингтонского собора, что бы приподнести в дар собору кусочек грунта, привезенного с Луны.
И что, законом запрещено дарить лунный грунт церкви? Или, астронавтам запрещено участвовать в церковных процессиях? Нет.
Нормальный человек посмотрит и скажет: ну да, было такое. Никак это слетать на луну не помешало.
А у неадеквата от такого фото может и пукан порваться.
www.nasa.gov/topics/history/features/spacewindow.html
Почему так, я недавно пояснил в комментарии: habr.com/post/464619/#comment_20541371
Так это фейк пятилетней давности. Фейковая новость с отфотошопленной фотографией.
Ничего такого в реальности не было.
Здесь можно было другую претензию предъявить: мы платим налоги, а создатели и распространители фейковых новостей не понесли установленную законом ответственность.
Но этот фейк не попадает под КоАП РФ Статья 13.15. и пользователю palec2006 штраф до 100 тыс. руб. пока не светит.
У вас неверные исходные утверждения и, соответственно, неверные выводы. Во первых, вы пишите, как будто суеверия и религия — это что-то строго плохое.
Восприимчивость к «высшему» (будь то Господь Бог или Илон Маск) заложена в человеке на генетическом уровне и является результатом эволюции на протяжении десятков (а может и сотен) тысяч лет. Эта мутация позволила сделать сильнее человеческие группы и выжить, поэтому нельзя утверждать, что она вредная или бесполезная.
Во вторых, у вас есть неявное утверждение, что религия и наука несовместимы. Это совсем не так и мир науки и религии живет, по факту, параллельно. Каждый решает свои задачи. См., например, статью Религия и общество.
Там есть интересная картинка со статистикой для нобелевских лауреатов:
Суть в том, что ученый, инженер, врач и т.д. живет в реальном мире, который не ограничен формулами, а включает в себя личностные, социальные вопросы, несет в себе и радость, и трагедии и множество других проявлений.
В статье так же упомянут факт, что 76% американских врачей верят в Бога и 59% считают, что существует тот или иной вид загробной жизни. Естественно, такая ситуация имеет свои причины. У религии есть множество функций, в т.ч. компенсаторная (помогает человеку справиться с социальным и психологическим напряжением, успокаивает, приносит облегчение). Поэтому, в тех областях, где велико психологическое давление следует ожидать высокий процент верующих. Это, в т.ч.: медицина, армия, космические полеты.
Жить в тесной шумной консервной банке с одним коллективом и в постоянном напряжении — это суровое испытание.
Убивая религию вы рискуете попасть в то же положение, что попали китайцы, убив воробьев. Уничтожив птиц в борьбе за урожай, Китай получил голод, в котором погибло 10-30 миллионов человек.
Я не могу прокомментировать случай скидывания на храм, т.к. не знаю подробностей. Полагаю, что это может быть единичный случай и нужно с ним разбираться.
Но могу сказать, что в армии США (и многих других странах) заставляют принимать присягу со словами о Боге.
У нас почти поголовно на работе в добровольно-принудительном порядке собирают деньги на 8 марта, вы же не бегаете по форумам и везде рассказываете, какие бабы — суки?
Я изначально предположил, что у вас разбомбило зад, раз вы приплели «Скафандр священника» к несвязанной теме статьи и не стал это озвучивать. Но ваш ответ окончательно убедил меня в этом.
Кто же еще выбегает на улицу и кричит «держите вора»? Только сам вор, и дым у вас идет со всех щелей.
Вот тут первый комментарий как раз вас четко характеризует:
И ссылка из комментария: tema.livejournal.com/1337888.html
См. Религия, суеверия и космос.
… Первой широко известной молитвой, произнесенной перед стартом ракеты стала так называемая «Молитва Алана Шепарда». Готовясь к первому американскому пилотируемому суборбитальному полету 5 мая 1961 года Алан произнес ставшую исторической фразу «Dear Lord, don't let me f*ck up»...
… астронавт «Аполлона-15» Джеймс Ирвин после отставки стал проповедником и много лет миссионерствовал под девизом «Приход Иисуса на Землю важнее, чем высадка человека на Луну»...
Напрямую или косвенно в Крым, ведь вы не просто так строите маршрут, а собираетесь туда поехать.
Сервис построения маршрута по мосту и Крыму вне его абсолютно бесполезен.
А у вас еще много дурацких вопросов осталось? Задавайте сразу всем списком, чего волынку тянуть-то?
Да, это: "… supply… directly or indirectly… services ...".
Нет, это неправильный перевод.
«key symbolic steps» переводится, как «ключевые символичные шаги». Множественное число, потому что в фразе упоминается два шага: 1) «The construction of this bridge» переводится, как «строительство этого моста»; 2) «its official opening» переводится, как «его официальное открытие».
Слово «steps» (шаги) здесь означает не «движение ногой при ходьбе», а имеет смысл «единичные операции процесса», или «элементы процесса».
Шаги символичные, потому что кроме технической составляющей (транспортной артерии) имеют еще и важную идеологическую составляющую.
Если на украинском ТВ пропаганда с утра до вечера вещала, что никакого моста не может быть, это нереально, это мосфильм и т.п., то постройка и запуск автомобильной части моста нанесла большой урон этой пропагандисткой кампании.
А сам мост стал отдельной достопримечательностью региона. Это вам не стеклянный мост в Киеве, который треснул через день использования.
Так вы сами-то документ читали?
...prohibited:
...the exportation, reexportation, sale, or supply, directly or indirectly, from the United States, or by a United States person, wherever located, of any goods, services, or technology to the Crimea region of Ukraine...
Вы как думаете, маршрут по мосту и территории Крыма святым духом был проложен?