-
- Сорри, не могу предыдущий свой мусор редактировать. Timlansen(1575 знак., 25.03.2011 01:03 - 21:35)
- И зачем такое (30 слов/30 тактов), когда уже давно приведен код на 18 слов/21 такт? А clr zh/adiw zl,(PowerOf2<<1) - вообще чушь - MBedder(25.03.2011 01:15 - 01:27)
- А как бы вы загрузили адрес? Timlansen(416 знак., 25.03.2011 01:45 - 02:46)
- Чушь, где бы ее ни размещать, чушью и останется. Фтыкай сюда --> - MBedder(25.03.2011 03:27, ссылка)
- Если оформить и применить этот фрагмент в проекте для ATmega128x/256x то можно получить непредсказуемый по красоте секс. - ы(29.03.2011 10:25, )
- Воткнул. Только регистров используется не 5, а 6, а страдает ещё 7-й. И не на любом чипе будет работать - хотя бы на at90usb162. Timlansen(775 знак., 25.03.2011 11:13)
- ADIW не понравилась тем, что будет работать только при размещении Powerof2 в первых 64 адресах блока, а первоначальный вариант не понравился тем, что он в полтора раза длиннее/тормознее моего. Остальное ты списал успешно :)) - MBedder(25.03.2011 11:31 - 11:34)
- ADIW я поправил (я эту загрузку использую на attiny для IJMP, таблица расположена в началах). Спасибо за пахлаву )) - Timlansen(25.03.2011 12:25)
- ADIW ты не поправил, а написал чушные каменты. Код, который будет работать только при таких-то и таких-то условиях, и есть чушь - MBedder(25.03.2011 19:45)
- Вот, поправил. Так лучше? - Timlansen(25.03.2011 21:54)
- ADIW ты не поправил, а написал чушные каменты. Код, который будет работать только при таких-то и таких-то условиях, и есть чушь - MBedder(25.03.2011 19:45)
- P.S. PIC24/dsPIC это делает за 4 слова/6 тактов MBedder(617 знак., 25.03.2011 12:11)
- И зачем я для дизайна взял atmel... А есть у микрочипа что-нибудь на замену attiny13, восьминогое? - Timlansen(25.03.2011 12:30)
- Нашёл [PIC12F1822], только он в 3 раза быстрее и во столько же раз дороже :( - Timlansen(25.03.2011 12:55)
- На каком количестве? Микрочип дает хорошие цены для массового производства. Только при этом остается Микрочипом :) - Vladimir Ljaschko(25.03.2011 12:57)
- На данный момент в одном комплексе - 62 мелких чипа (attiny13a), 2 средних (attiny2313) и 1 с at90USB162. Timlansen(397 знак., 25.03.2011 14:30)
- это что за жуть такая? эта сеть не поработит мир случайно? )))) - Mahagam(25.03.2011 21:13)
- Пока она на Атмеле, не поработит ) - Timlansen(25.03.2011 21:37)
- Жуть. Одна заливка в 65 чипов чего стоит :)) - MBedder(25.03.2011 19:47)
- лично я никогда не понимал любителей напихать кучу МК в одно изделие без обоснованной необходимости koyodza(79 знак., 25.03.2011 20:51)
- Это не одно устройство, а 65: управляющий блок, 2 дисплея, 31 излучатель и 31 датчик. Timlansen(492 знак., 25.03.2011 21:51)
- Тут только одна догадка. ПЛИС некогда осваивать... - mazur(25.03.2011 20:55)
- не факт - koyodza(25.03.2011 21:12)
- лично я никогда не понимал любителей напихать кучу МК в одно изделие без обоснованной необходимости koyodza(79 знак., 25.03.2011 20:51)
- это что за жуть такая? эта сеть не поработит мир случайно? )))) - Mahagam(25.03.2011 21:13)
- На данный момент в одном комплексе - 62 мелких чипа (attiny13a), 2 средних (attiny2313) и 1 с at90USB162. Timlansen(397 знак., 25.03.2011 14:30)
- На каком количестве? Микрочип дает хорошие цены для массового производства. Только при этом остается Микрочипом :) - Vladimir Ljaschko(25.03.2011 12:57)
- Нашёл [PIC12F1822], только он в 3 раза быстрее и во столько же раз дороже :( - Timlansen(25.03.2011 12:55)
- И зачем я для дизайна взял atmel... А есть у микрочипа что-нибудь на замену attiny13, восьминогое? - Timlansen(25.03.2011 12:30)
- ADIW я поправил (я эту загрузку использую на attiny для IJMP, таблица расположена в началах). Спасибо за пахлаву )) - Timlansen(25.03.2011 12:25)
- ADIW не понравилась тем, что будет работать только при размещении Powerof2 в первых 64 адресах блока, а первоначальный вариант не понравился тем, что он в полтора раза длиннее/тормознее моего. Остальное ты списал успешно :)) - MBedder(25.03.2011 11:31 - 11:34)
- Чушь, где бы ее ни размещать, чушью и останется. Фтыкай сюда --> - MBedder(25.03.2011 03:27, ссылка)
- А как бы вы загрузили адрес? Timlansen(416 знак., 25.03.2011 01:45 - 02:46)
- И зачем такое (30 слов/30 тактов), когда уже давно приведен код на 18 слов/21 такт? А clr zh/adiw zl,(PowerOf2<<1) - вообще чушь - MBedder(25.03.2011 01:15 - 01:27)
- А нужна ли тебе эта функция? AD(608 знак., 03.03.2011 22:42, ссылка)
- 1. Немного не так. "Сравнение текущего и предыдущего состояния входов. Если равно, то выход".2. Кто Вам сказал что за проход изменится только 1 бит? А если сразу 15? Покажите более простую байтовую реализацию. Тут все не так страшно, Bublic(25 знак., 04.03.2011 10:36, )
- Тебе уже как минимум пятеро (mazur, Bill, ReAl, 580ВМ80, AD) привели гораздо более короткий и эффективный код, чем твой уёбищный - чего тебе еще надо, васёк-квазёк-нзотов-борух-как-там-тебя-еще? - MBedder(04.03.2011 11:21)
- Не понял. Никакого кода я не давал, да и не мог давать, потому как не силен пока в AVR. Ты кто? - Bublic(04.03.2011 11:32, )
- Шорткаты я убрал специально AD(730 знак., 04.03.2011 11:16)
- Понятно. Нельзя ли поподробнее про байтовый метод когда за раз изменится 15 неизвестных бит. - Bublic(04.03.2011 11:19, )
- Сложно самому написать? AD(554 знак., 04.03.2011 13:12)
- Понятно. Нельзя ли поподробнее про байтовый метод когда за раз изменится 15 неизвестных бит. - Bublic(04.03.2011 11:19, )
- Тебе уже как минимум пятеро (mazur, Bill, ReAl, 580ВМ80, AD) привели гораздо более короткий и эффективный код, чем твой уёбищный - чего тебе еще надо, васёк-квазёк-нзотов-борух-как-там-тебя-еще? - MBedder(04.03.2011 11:21)
- ..что я и пытаюсь ему внушить все это время :)) - MBedder(03.03.2011 23:19)
- 1. Немного не так. "Сравнение текущего и предыдущего состояния входов. Если равно, то выход".2. Кто Вам сказал что за проход изменится только 1 бит? А если сразу 15? Покажите более простую байтовую реализацию. Тут все не так страшно, Bublic(25 знак., 04.03.2011 10:36, )
- Вот вам пример подпрограмма, уважаемый. Задаете номер бита и получаете его значение в бите T. Это для IAR, для других сред адрес задаваемого массива кажется надо писать (ИМЯ_МАССИВА*2). Ну, попробуйте.;;;;;;;;;;;;;;;;;;;;;;;; объявление некого Barinov(811 знак., 03.03.2011 18:53, )
- перед кодом <asm> после кода </asm> - mazur(03.03.2011 20:27)
- Так что ли...; объявление некого флеш- массив бит 0...31TABLE: DB 0xaa, 0xbb, 0xcc, 0xdd ldi r16, 30 ; задаю номер интересующего бита в массиве TABLE (диапазон значений 0...31) call BITS nop ; значение заданного бита находится Barinov(429 знак., 03.03.2011 20:38, )
- Тэги действуют только для зарегистрированных пользователей. - rezident(03.03.2011 20:36)
- Если человек посчитал нужным зайти на этот сайт и участвовать на нем, тогда пусть зарегистрируется. Здесь несложная регистрация. Помнится, хотел зарегистрироваться на одном сайте, так там столько условий было, что я не выдержал, и написал админам. mazur(86 знак., 03.03.2011 20:53)
- Это разумно. Но нет больше сил постить один и тот же десяток строк)) - Barinov(03.03.2011 20:41, )
- перед кодом <asm> после кода </asm> - mazur(03.03.2011 20:27)
- Спасибо всем!!! Что не сочли за труд, нашли время, ткнули носом, подсказали, дали идей. Я получил даже больше, чем просил. mazur(591 знак., 01.03.2011 21:29)
- Добавлю и я свою копеечку. В свое время, в порядке тренировки, я написал небольшую Bill(4415 знак., 02.03.2011 18:22 - 18:40)
- Ну да, вот собссно функция получения нужного бита. На 256 битов. mazur(341 знак., 02.03.2011 19:55 - 20:00)
- А теперь будь добр, объясни - зачем такая функция вообще нужна, если номер бита является заранее известной константой, которую можно прекрасно передать параметром в тот макрос? - MBedder(02.03.2011 20:02)
- Получается, что я изначально некорректно задал вопрос. Мне нужно было получить функцию проверки бита, заранее неизвестного. - mazur(02.03.2011 20:04)
- На хрена такая функция, если только ее вызов отнимает больше ресурсов, чем макрос MBeddera? - Vladimir Ljaschko(03.03.2011 09:39)
- Бля. Тогда вопрос: а зачем было делать 24-битную структуру, а не три 8-битных? - MBedder(02.03.2011 21:47)
- Я не знаю, понял тебя или нет, можно подробнее? - mazur(02.03.2011 21:54)
- МК у тебя 8-битный, и любая операция над более крупным, чем 8 бит объектом ведет к усложнению кода. Та же задачка для 8-битного поля решается в разы проще и изящнее, чем для 24-битного - так зачем тогда создавать 24-битные поля - из любви к MBedder(11 знак., 02.03.2011 22:02)
- Пусть я покажусь тупым, хрен с ним, не страшно. Все-таки прошу разъяснить это сообщение. Исходи из того, что я ни хрена понял. - mazur(04.03.2011 19:24)
- У тебя дальше, в прикладной программе используется номер бита, да? Скрипач(145 знак., 04.03.2011 19:29)
- Тьфу, ептыть. Значит, я правильно его понял. Ну да, элементарная логика подзуживала меня, а если битов очень много. Как раз над этим репу чешу. - mazur(04.03.2011 19:39 - 19:47)
- А какая разница? :) Ну и выделяйте не тетраду под номер байта, а (8-3=6) бит :) Скрипач(95 знак., 04.03.2011 19:46 - 20:00)
- Тьфу, ептыть. Значит, я правильно его понял. Ну да, элементарная логика подзуживала меня, а если битов очень много. Как раз над этим репу чешу. - mazur(04.03.2011 19:39 - 19:47)
- У тебя дальше, в прикладной программе используется номер бита, да? Скрипач(145 знак., 04.03.2011 19:29)
- А еще подробнее? - mazur(03.03.2011 08:35)
- Я человек практичный. Во-первых, не зацикливаюсь на каких-то идеях, если идея не подходит, я от нее легко отказываюсь, какая бы она красивая ни была. Если меня заносит, спокойно признаю этот факт. Если еще имеется в виду оформление, я выработал mazur(193 знак., 03.03.2011 10:27)
- 3 байта - это уже непостижимая абстракция :) - Vladimir Ljaschko(03.03.2011 10:30)
- Vladimir, не хотелось бы, чтобы у вас сложилось мнение, что я залупаюсь. Но некоторые последние сообщения известных участников конференции, показывают, что ваша "абстракция" иногда, мягко говоря, хромает. - mazur(03.03.2011 10:42)
- Вот и принимайте решение, кого слушать. Я не предлагал свой стиль написания анализа битов вообще - он на убойном сочетании С + макросы + inline, что Вам недоступно. - Vladimir Ljaschko(03.03.2011 10:56)
- Речь не о том, кого слушать, кого не слушать. Я выслушал мнение всех участников. Вот взяли бы и объяснили "молодому". А то "3 байта-непостижимая абстракция". - mazur(03.03.2011 11:00)
- Как мне кажется, наблюдается несоответствие знаний+возможностей ассемблера и желаемого объема программирования. ЯВУ вы не хотите, значит путь - создание "квази-языка" в виде собственных библиотек на ассемблере. Чтобы сделать их оптимально, нужно Vladimir Ljaschko(217 знак., 03.03.2011 11:23)
- Мне непонятно вот это => - mazur(03.03.2011 11:46, ссылка)
- И это => - mazur(03.03.2011 11:49, ссылка)
- Я же пояснил --> - MBedder(03.03.2011 11:50, ссылка)
- И это => - mazur(03.03.2011 11:49, ссылка)
- Мне непонятно вот это => - mazur(03.03.2011 11:46, ссылка)
- Ну уж простите меня за некоторый флейм, ладно? ;) - Vladimir Ljaschko(03.03.2011 11:02)
- Как мне кажется, наблюдается несоответствие знаний+возможностей ассемблера и желаемого объема программирования. ЯВУ вы не хотите, значит путь - создание "квази-языка" в виде собственных библиотек на ассемблере. Чтобы сделать их оптимально, нужно Vladimir Ljaschko(217 знак., 03.03.2011 11:23)
- Речь не о том, кого слушать, кого не слушать. Я выслушал мнение всех участников. Вот взяли бы и объяснили "молодому". А то "3 байта-непостижимая абстракция". - mazur(03.03.2011 11:00)
- Вот и принимайте решение, кого слушать. Я не предлагал свой стиль написания анализа битов вообще - он на убойном сочетании С + макросы + inline, что Вам недоступно. - Vladimir Ljaschko(03.03.2011 10:56)
- Vladimir, не хотелось бы, чтобы у вас сложилось мнение, что я залупаюсь. Но некоторые последние сообщения известных участников конференции, показывают, что ваша "абстракция" иногда, мягко говоря, хромает. - mazur(03.03.2011 10:42)
- 3 байта - это уже непостижимая абстракция :) - Vladimir Ljaschko(03.03.2011 10:30)
- Вкратце - тщательнее продумывай создаваемые ТОБОЙ структуры данных с точки зрения максимальной эффективности последующих обращений к ним, а не с точки зрения их мнимых красивостей - MBedder(03.03.2011 10:15)
- Я человек практичный. Во-первых, не зацикливаюсь на каких-то идеях, если идея не подходит, я от нее легко отказываюсь, какая бы она красивая ни была. Если меня заносит, спокойно признаю этот факт. Если еще имеется в виду оформление, я выработал mazur(193 знак., 03.03.2011 10:27)
- Пусть я покажусь тупым, хрен с ним, не страшно. Все-таки прошу разъяснить это сообщение. Исходи из того, что я ни хрена понял. - mazur(04.03.2011 19:24)
- МК у тебя 8-битный, и любая операция над более крупным, чем 8 бит объектом ведет к усложнению кода. Та же задачка для 8-битного поля решается в разы проще и изящнее, чем для 24-битного - так зачем тогда создавать 24-битные поля - из любви к MBedder(11 знак., 02.03.2011 22:02)
- Я не знаю, понял тебя или нет, можно подробнее? - mazur(02.03.2011 21:54)
- Получается, что я изначально некорректно задал вопрос. Мне нужно было получить функцию проверки бита, заранее неизвестного. - mazur(02.03.2011 20:04)
- А теперь будь добр, объясни - зачем такая функция вообще нужна, если номер бита является заранее известной константой, которую можно прекрасно передать параметром в тот макрос? - MBedder(02.03.2011 20:02)
- Ну да, вот собссно функция получения нужного бита. На 256 битов. mazur(341 знак., 02.03.2011 19:55 - 20:00)
- Молодец! А теперь сравни с С: Михаил Е.(142 знак., 02.03.2011 11:36)
- На ассемблере тоже одна строка - btest x,numbit - и при этом х может иметь размерность хоть 65536 бит. Весь код занимает 2 (два) слова программной памяти. А теперь сравни с С :)) - MBedder(02.03.2011 13:36, ссылка)
- Не порть молодежь, я пытаюсь пихнуть его в правильном направлении:)))) - Михаил Е.(02.03.2011 13:57)
- А на С не зависит от платфрмы! :) И еще меня просто клинит от команды перехода. Что это? Зачем? ;) - Vladimir Ljaschko(02.03.2011 13:47 - 13:49)
- На ассемблере тоже одна строка - btest x,numbit - и при этом х может иметь размерность хоть 65536 бит. Весь код занимает 2 (два) слова программной памяти. А теперь сравни с С :)) - MBedder(02.03.2011 13:36, ссылка)
- Добавлю и я свою копеечку. В свое время, в порядке тренировки, я написал небольшую Bill(4415 знак., 02.03.2011 18:22 - 18:40)
- Ну вроде решил. mazur(7660 знак., 01.03.2011 18:00)
- Ужас какой. А ты подумал, что будет, если 2 входа изменятся одновременно? - AD(02.03.2011 09:55)
- Давно я так не смеялся, честное слово. Спасибо, дружище ;) - AST(01.03.2011 19:31)
- Ну выскажи свои замечания. Вместе похихикаем :) - mazur(01.03.2011 20:34)
- Аналогично, DEC кроме C не трогает T. Заменяем ReAl(845 знак., 01.03.2011 19:16)
- о_О - mazur(01.03.2011 20:30)
- Вы порождаете демона :( - Xитpый Kитaeц(01.03.2011 18:28)
- Это не окончательная программа. Но как бы то ни было, поясните пожалуйста. - mazur(01.03.2011 18:43)
- С одной стороны, если автор создаст хоть какой-то уровень абстракции, это уже хорошо. - Vladimir Ljaschko(01.03.2011 18:40)
- Абстракция, сама по себе, есть абсолютное зло. Смысл имеет только "проектирование сверху-вниз" а им здесь и не пахнет. - Скрипач(01.03.2011 20:36)
- Умение удобного прописывания нижних уровней никому не мешает. Но скорее всего, у автора это самоцель, тут я согласен. - Vladimir Ljaschko(02.03.2011 10:08)
- Про "проектирование сверху-вниз" можно? - mazur(02.03.2011 10:05)
- Можно. Скрипач(909 знак., 02.03.2011 10:24)
- Абстракция, вводимая взамен конкретики, есть не зло, а признак самобытности и нетривиальности ума. Средним умам свойственно лишь обратное сведение абстракций к конкретикам, а вот возойти вспять отнюдь не каждый даже сотый силен будет - MBedder(02.03.2011 02:36 - 02:42)
- Абстракция, сама по себе, есть абсолютное зло. Смысл имеет только "проектирование сверху-вниз" а им здесь и не пахнет. - Скрипач(01.03.2011 20:36)
- Я знаю, что Вы leon_(617 знак., 01.03.2011 11:06)
- Может быть, что-то такое? Если подходит, можно оформить подпрограммой. leon_(1353 знак., 28.02.2011 22:44 - 23:20)
- Будь проще, и к тебе потянутся люди :) Фтыкай и учись - 2 слова/3 такта вместо всего твоего монстрика, да еще и бит-массив любой длины, кратной MBedder(1003 знак., 28.02.2011 22:23 - 22:54)
- можно про операнд % ? - mazur(01.03.2011 01:22)
- Не операнд, а оператор взятия остатка от деления. 17%8=1, 29%8=5. При кратном 2^K значении операнда N вырождается в X = X & (N-1), что позволяет легко модифицировать мой код для работы с переменными аргументами - MBedder(01.03.2011 01:31 - 20:46)
- Не грузи :О) У нас сейчас полпятого утра. Второе предложение попроще, ага? - mazur(01.03.2011 01:34)
- В моем коде и деление на 8, и взятие остатка от такового делает не МК, а ассемблер, т.к. операнды - константы, и их значения известны во время компиляции. MBedder(282 знак., 01.03.2011 01:39 - 01:58)
- Не грузи :О) У нас сейчас полпятого утра. Второе предложение попроще, ага? - mazur(01.03.2011 01:34)
- Не операнд, а оператор взятия остатка от деления. 17%8=1, 29%8=5. При кратном 2^K значении операнда N вырождается в X = X & (N-1), что позволяет легко модифицировать мой код для работы с переменными аргументами - MBedder(01.03.2011 01:31 - 20:46)
- И таких 24 штуки для задаваемого бита? Тогда в чем радость? - Barinov(28.02.2011 23:17, )
- Еще один умник :)) ОДНА (1) штука для любого бита - одна на всех, соколик :) - MBedder(28.02.2011 23:19)
- Соколик, твое макро делает сдвиг на жестко задаваемой позицию бита. Для другой позиции искомого бита будет другое макро. Итого 24. От чего афтор и уйти хочет. - Barinov(28.02.2011 23:24, )
- Если бы ты хоть чуток понимал в ассемблере, то увидел бы, что "моё макро" ничего никуда не сдвигает. Ступай, соколик - MBedder(01.03.2011 01:23)
- Соколик, если бы ты чуть понимал а программировании, то знал бы, что макросы только пишутся экономно, а код транжирят направо и налево. У тебя для анализа ПРОИЗВОЛЬНОГО бита(а автору нужно задавать произвольный номер анализируемого бита, т.к. все Barinov(163 знак., 01.03.2011 08:31, )
- Какой такой "код для вызова макроса" ??? Он уже давно написан и содержится в теле программы под названием "ассемблер", там же "вызывается" и там же и остаётся. ReAl(2605 знак., 03.03.2011 09:21 - 09:23)
- +100500. Но объяснять это брызжущему словесным поносом ослу бесполезно - не в осла корм :)) - MBedder(03.03.2011 10:12)
- Пиздец не лечится, ибо это пиздец :)) - MBedder(01.03.2011 19:19)
- Какой такой "код для вызова макроса" ??? Он уже давно написан и содержится в теле программы под названием "ассемблер", там же "вызывается" и там же и остаётся. ReAl(2605 знак., 03.03.2011 09:21 - 09:23)
- Соколик, если бы ты чуть понимал а программировании, то знал бы, что макросы только пишутся экономно, а код транжирят направо и налево. У тебя для анализа ПРОИЗВОЛЬНОГО бита(а автору нужно задавать произвольный номер анализируемого бита, т.к. все Barinov(163 знак., 01.03.2011 08:31, )
- Не 24 а один этот макрос, а номер бита идёт вторым параметром макроса (константой). Посмотрите внимательней. - leon_(28.02.2011 23:37)MBedder
- Вот именно, задается константой. И кодовая реализация будет для каждого бита разная. И для всего набора анализируемых бит должен быть полный набор реализации макросов, от чего автор собственно и хочет уйти. Вот я и спрашиваю, в чем радость? - Barinov(01.03.2011 08:45, )
- Радость в том, что оптимизируется либо размер либо скорость, в данном случае скорость. Топикастер хочет знать как это делать ВААЩЕ - результат налицо. - Xитpый Kитaeц(01.03.2011 11:58)
- Кстати, соколик уже понял это, и запел про "легко модифицировать", а вначале пел про 3 такта "вместо всего твого монстрика":))) - Barinov(01.03.2011 08:48, )
- Ты обтекай поаккуратнее, а то брызги летят :)) - MBedder(01.03.2011 19:21)
- Он прав если че... Смешны скорее Вы со своими 3 тактами. Надо читать тему. - IvanKo(01.03.2011 20:13, )
- Если чё, то в теме написано: "Есть битовое поле. Скажем, 24 бита, то есть, 3 байта. И нужно проверить определенный [= заранее известно какой] бит" - что мой двухсловный макрос именно и делает. MBedder(466 знак., 01.03.2011 21:06)
- Если че, то там в теме написано, что он сделал 24 функции которые отличались только номерами бит, и это ему не нравится. Вы ему предлагаете генератор тех же 24-х реализаций и уверяете что на все про все 3 такта. Где логика? - Barinov(01.03.2011 22:16, )
- Я ему предлагаю не генератор, а суперкомпактный автоматический инлайн-реализатор тех функций. А тебе предлагаю оставить содержимое твоего горшка в покое, и больше им не плеваться - MBedder(01.03.2011 23:41)
- Вы предложили расхожий вариант для генерации своего куска кода для анализа каждого бита. Автор подтвердил, что хотел не этого. В чем проблемма признаться что Вы не прав? - Barinov(03.03.2011 08:39, )
- Вы уже столько написали... Не проще было скопипастить макрос, пару раз его вызвать да посмотреть дизассемблером, что получится? Лень? Так я Вам скажу: на каждый вызов будут подставлены те два оператора с правильными аргументами. - maik-vs(03.03.2011 10:22)
- Друг, ты не меньше понаписал, пора понять, что Мазуру нужен ззадаваемый номер бита, а ему дали метод обращения к константнозадаваемому биту. Вот попробуй напиши цикл опроса всех бит, и увидишь что это не 3 такта. Нужна подпрограммка, говорю же, а BorisSh(10 знак., 03.03.2011 15:15, )
- Где я понаписал? А Мазуру нужно переходить на Си с его любовью к монструозным конструкциям. Ладно, maik-vs(333 знак., 03.03.2011 15:56)
- Ни за что не поверю, что ваши программы с первого раза безупречны. - mazur(04.03.2011 22:36 - 05.03.2011 11:37)
- Вот полученная мною подпрограмма. Напишите ее короче. - mazur(03.03.2011 20:21, ссылка)
- Думаю, оптимальнее уже не сделать. mazur(614 знак., 04.03.2011 21:48)
- только на форумах по ассемблеру мужики меряются у кого короче :> - Snaky(05.03.2011 06:11)
- :))) - MBedder(05.03.2011 14:35)
- И зря думаешь MBedder(189 знак., 05.03.2011 03:33)
- только на форумах по ассемблеру мужики меряются у кого короче :> - Snaky(05.03.2011 06:11)
- Вот код, который покороче будет: 580BM80(895 знак., 04.03.2011 07:27 - 07:30)
- "Не корысти ради"(с) - еще чуток покороче и побыстрее :)) MBedder(802 знак., 04.03.2011 12:26 - 25.03.2011 03:21)
- Не думал, что эту тему снова поднимут. Раз так, спрошу, откуда взялась цифра именно 32? Я не спрашиваю, для чего, спрашиваю-откуда? - mazur(25.03.2011 06:51)
- За mul респект! Бум знать. - maik-vs(05.03.2011 12:53)
- Только справедливости ради :) И быстрее и универсальней, но не короче. - 580BM80(04.03.2011 13:39)
- Да короче, короче - твоя 21 слово, моя - 18. Но твоя изящнее - ijmp красиво лег, почти как у меня когда-то :)) --> MBedder(3026 знак., 05.03.2011 00:27, ссылка)
- Да, я лоханулся - таблицу масок посчитал как 8 слов, а не 4 :(( - 580BM80(05.03.2011 08:22)
- Да короче, короче - твоя 21 слово, моя - 18. Но твоя изящнее - ijmp красиво лег, почти как у меня когда-то :)) --> MBedder(3026 знак., 05.03.2011 00:27, ссылка)
- Человек не может думать на ассемблере. А бит один или несколько? Если один, то можно вначале проверить на 0, потом маска 0x0f, потом 0x33, потом 0x55 -- 4 операции вместо 8-и. Ведь на самом-то деле цель не проверить бит N-ый, а отыскать какие fk0(86 знак., 04.03.2011 13:24)
- Что за mulu? И разве в указатель на mask загружается не удвоенное число? - mazur(04.03.2011 13:22)
- Ага, что-то такое и хотел написать, но потом зацепился за макросы, а потом уже машина пришла и я побежал :-) Только там фрагмент можно на слово короче написать: ldzl,z sbrczl,2 swapah andizl,3clrzh subizl,low -ReAl-(85 знак., 05.03.2011 09:22, )
- "Не корысти ради"(с) - еще чуток покороче и побыстрее :)) MBedder(802 знак., 04.03.2011 12:26 - 25.03.2011 03:21)
- Думаю, оптимальнее уже не сделать. mazur(614 знак., 04.03.2011 21:48)
- Где я понаписал? А Мазуру нужно переходить на Си с его любовью к монструозным конструкциям. Ладно, maik-vs(333 знак., 03.03.2011 15:56)
- Друг, ты не меньше понаписал, пора понять, что Мазуру нужен ззадаваемый номер бита, а ему дали метод обращения к константнозадаваемому биту. Вот попробуй напиши цикл опроса всех бит, и увидишь что это не 3 такта. Нужна подпрограммка, говорю же, а BorisSh(10 знак., 03.03.2011 15:15, )
- Вы уже столько написали... Не проще было скопипастить макрос, пару раз его вызвать да посмотреть дизассемблером, что получится? Лень? Так я Вам скажу: на каждый вызов будут подставлены те два оператора с правильными аргументами. - maik-vs(03.03.2011 10:22)
- Вы предложили расхожий вариант для генерации своего куска кода для анализа каждого бита. Автор подтвердил, что хотел не этого. В чем проблемма признаться что Вы не прав? - Barinov(03.03.2011 08:39, )
- Я ему предлагаю не генератор, а суперкомпактный автоматический инлайн-реализатор тех функций. А тебе предлагаю оставить содержимое твоего горшка в покое, и больше им не плеваться - MBedder(01.03.2011 23:41)
- Если че, то там в теме написано, что он сделал 24 функции которые отличались только номерами бит, и это ему не нравится. Вы ему предлагаете генератор тех же 24-х реализаций и уверяете что на все про все 3 такта. Где логика? - Barinov(01.03.2011 22:16, )
- Если чё, то в теме написано: "Есть битовое поле. Скажем, 24 бита, то есть, 3 байта. И нужно проверить определенный [= заранее известно какой] бит" - что мой двухсловный макрос именно и делает. MBedder(466 знак., 01.03.2011 21:06)
- Он прав если че... Смешны скорее Вы со своими 3 тактами. Надо читать тему. - IvanKo(01.03.2011 20:13, )
- Ты обтекай поаккуратнее, а то брызги летят :)) - MBedder(01.03.2011 19:21)
- Вот именно, задается константой. И кодовая реализация будет для каждого бита разная. И для всего набора анализируемых бит должен быть полный набор реализации макросов, от чего автор собственно и хочет уйти. Вот я и спрашиваю, в чем радость? - Barinov(01.03.2011 08:45, )
- Если бы ты хоть чуток понимал в ассемблере, то увидел бы, что "моё макро" ничего никуда не сдвигает. Ступай, соколик - MBedder(01.03.2011 01:23)
- Соколик, твое макро делает сдвиг на жестко задаваемой позицию бита. Для другой позиции искомого бита будет другое макро. Итого 24. От чего афтор и уйти хочет. - Barinov(28.02.2011 23:24, )
- Еще один умник :)) ОДНА (1) штука для любого бита - одна на всех, соколик :) - MBedder(28.02.2011 23:19)
- Супер! - leon_(28.02.2011 22:52)
- Тады пойду обратно на горшок :)) - MBedder(28.02.2011 22:55)
- можно про операнд % ? - mazur(01.03.2011 01:22)
- Вы знаете MAZUR Ваш код просто "убивает" вообще всякое понятие о asm. Кто Вас научил пользоваться так небрежно регистром SREG? ilyaul(639 знак., 28.02.2011 21:10)
- Уважаемый... Прочитав ваше сообщение, я надолго задумался. Отвечать вам или нет. Что вам ответить. Притом даже не "достойно ответить". Тут другое. Первое-у вас какое-то преклонение перед регистром SREG. Это говорит о шаблонности вашего мышления, mazur(564 знак., 28.02.2011 22:29)
- Это всё демагогия - давай по существу . Вопросы ты видел , так хоть нормално на них ответь. Мата , я уже наслушался, asm я поверь знаю. ilyaul(143 знак., 28.02.2011 23:53)
- Да брось ты - пацан просто решил блеснуть талантом, а блеснул голым задом :)) - MBedder(28.02.2011 22:36)
- Вы знаете, ILYAUL, как только вы изобразите мне команды push/pop/mov применительно к AVR SREG, я публично приму лесбиянство и обрею левое яйцо. А до того, будьте так любезны, не порите хуйню, ибо в ассемблере вы не разбираетесь даже на MBedder(36 знак., 28.02.2011 21:27 - 21:31)
- Вы считаете , что это нормально написанный код ? И мат - это Ваше высшее достижение? Тогда поздравляю!! ilyaul(128 знак., 28.02.2011 21:51)
- Ты не слез с горшка, а залез в него и сидишь теперь по уши в собственном дерьме. Три команды и пять тактов против одной однотактной - это воистину внутригоршковое достижение. Пешы есчо, давно так не смеялся :)) - MBedder(28.02.2011 22:26)
- Ну а теперь вкл . мозги - ilyaul(612 знак., 28.02.2011 23:43)
- Ступай, я не подаю скудоумным - MBedder(01.03.2011 00:53)
- тебе никто здесь ничего не должен. то, что пишут тебе это то, что пишут тебе. принятие себя за пупа Земли карается пропиской в мусорке. Vit(164 знак., 28.02.2011 23:56)
- Ну а теперь вкл . мозги - ilyaul(612 знак., 28.02.2011 23:43)
- Ващет автор предыдущего поста был инженером по применению на Atmel. Вряд ли это было возможно, сидючи на горшке. - Vladimir Ljaschko(28.02.2011 21:57)
- Ты не слез с горшка, а залез в него и сидишь теперь по уши в собственном дерьме. Три команды и пять тактов против одной однотактной - это воистину внутригоршковое достижение. Пешы есчо, давно так не смеялся :)) - MBedder(28.02.2011 22:26)
- Вы считаете , что это нормально написанный код ? И мат - это Ваше высшее достижение? Тогда поздравляю!! ilyaul(128 знак., 28.02.2011 21:51)
- Уважаемый... Прочитав ваше сообщение, я надолго задумался. Отвечать вам или нет. Что вам ответить. Притом даже не "достойно ответить". Тут другое. Первое-у вас какое-то преклонение перед регистром SREG. Это говорит о шаблонности вашего мышления, mazur(564 знак., 28.02.2011 22:29)
- Я ох..ваю, дорогая редакция... - fk0(28.02.2011 18:22)
- Если поле в 24 бита, то надо брать прямо тот БАЙТ, а котором тот бит, находится и его в том байте проверять. - Ксения(28.02.2011 16:26)
- что за бред? Просто and с маской почему не годится? - koyodza(28.02.2011 16:14)
- Это решается просто: AST(105 знак., 28.02.2011 16:13)
- На С пользюсь такими макросами nik_al(426 знак., 03.03.2011 22:52)
- В нормальных ЯВУ есть понятие bignum и vector... - fk0(04.03.2011 13:27)
- MCC18 насколько нормальный ЯВУ ? - nik_al_без_пароля (04.03.2011 13:53, )
- это ассемблер. - fk0(04.03.2011 16:02)
- MCC18 насколько нормальный ЯВУ ? - nik_al_без_пароля (04.03.2011 13:53, )
- В нормальных ЯВУ есть понятие bignum и vector... - fk0(04.03.2011 13:27)
- вариант Vit(161 знак., 28.02.2011 16:24)
- На С пользюсь такими макросами nik_al(426 знак., 03.03.2011 22:52)
- Сорри, не могу предыдущий свой мусор редактировать. Timlansen(1575 знак., 25.03.2011 01:03 - 21:35)