-
- Тут ниже понеслось в дебри доказательств на С "возможно всё!" но
смысл был другой. На ASM компактнее по памяти и быстрее по тактам. RxTx(253 знак., 25.02.2024 18:29)
- Равно как и на любом другом языке. даж на "брэйнфаке" теоретически возможно всё тоже :)) вопрос целесообразности и эффективности (правда это тоже нифига не функции одной переменной), такшо нравится кому-то аль нет, - ассемблер вечен :) насколько его будут использовать, - вангую, что по мере необходимости, использовать будут, ещё и как. Вопрос настколько часто, чтобы стоило в него вникать?? Ответ - достаточно редко, чтобы все поголовно его изучали, но знание его строго Adept(100 знак., 25.02.2024 21:11)
- Я переносил своеобразную свою оптимизированную годами 24битную математику с асма на 32 бита С для 8битного AVR, разница модуля вычислений больше, чем в 2 раза вышла . Но итоговая прога процентов на 30 больше, и в итоге вышло сделать один текст проги под 3 проца, ХРЕН я бы в разумные сроки на асме такое сотворил. Обоссать и оставить асм только для очень редких супероптимизаций. - Andreas(25.02.2024 19:17)
- В стандарте есть 64-битные целые. С ними у ARM всё шоколадно -
сложение транслируется в пару add, adc. У avr через вызов
библиотечной функции с прогоном аргументов через стек. Внутри
функции всё нормально. Предложения в стандарт по целым любой
разрядности есть, Но когда примут неизвестно. В сети есть класс из
этого предложения. Работать с ним удобно, так же как с базовыми
типами, но с оптимальностью без поддержки компилятора не очень. С
другой стороны, вычислить 100! VladislavS.(31 знак., 25.02.2024 03:16)
- У avr через вызов библиотечной функции с прогоном аргументов
через стек. На дыбу того кто это придумал. У авра 32 РОН-а , для сложения двух
64-х достаточно четырёх команд enc(125 знак., 25.02.2024 21:14)
- Мнение человека не способного 64 на 8 поделить особенно ценно.
Можно подумать, что 16 регистров незадействованные только и ждут
64-битных сложений. Сохранить/восстановить их не надо? - VladislavS.(25.02.2024 22:45)
- Да ладно, четыре - восемь. Ошибся, бывает. Очевиден смысл процедуры
сохранения/восстановления регистров при входе/выходе из прерывания
а зачем это нужно делать перед/после арифметической операции? - enc(25.02.2024 23:04)
- Потому что программа состоит не только из этого архиважного
действия - сложить 64-битные числа на восьмибитном контроллере. - VladislavS.(25.02.2024 23:14)
- А ещё умножить, разделить со знаком и без и для всей этой хрени
нужны РОН-ы , а для всего остального - ОЗУ. Не так ли? - enc(25.02.2024 23:29)
- и вот тут реально удобен Z8Encore. Где могу назначить в любом месте адресного пространства в 4К нужные мне 16 РОН для каждой задачи отдельно. Хоть 20 раз по 16. :-) - Лaгyнoв(26.02.2024 08:44)
- Нет никакой необходимости держать всё число сразу в регистрах.
Сегодня вам 64 бита надо, завтра 256. Где регистры брать будете? - VladislavS.(25.02.2024 23:40)
- Ты же о 64-битных целых заговорил. У avr через вызов библиотечной функции с прогоном аргументов
через стек. (VladislavS). Применительно к авру его 32-х регистров хватает для арифметики с
любой целочисленкой до 64 бит включительно. enc(113 знак., 25.02.2024 23:56)
- Да хоть в облаке, всё равно сложеие побайтово производится. Достаточно пары регистров. - VladislavS.(26.02.2024 07:17)
- Ты же о 64-битных целых заговорил. У avr через вызов библиотечной функции с прогоном аргументов
через стек. (VladislavS). Применительно к авру его 32-х регистров хватает для арифметики с
любой целочисленкой до 64 бит включительно. enc(113 знак., 25.02.2024 23:56)
- А ещё умножить, разделить со знаком и без и для всей этой хрени
нужны РОН-ы , а для всего остального - ОЗУ. Не так ли? - enc(25.02.2024 23:29)
- Потому что программа состоит не только из этого архиважного
действия - сложить 64-битные числа на восьмибитном контроллере. - VladislavS.(25.02.2024 23:14)
- Да ладно, четыре - восемь. Ошибся, бывает. Очевиден смысл процедуры
сохранения/восстановления регистров при входе/выходе из прерывания
а зачем это нужно делать перед/после арифметической операции? - enc(25.02.2024 23:04)
- Глупое эмоциональное мнение. Примерно как в отношении ИАР и 51го "ха, не умеет с битами работать, сранное Г стандарту
придерживается зачем-то". И наоборот "ваш Кейл - Г, т.к. он стандарту не соответствует, это совсем не
СИ" - POV(25.02.2024 21:19)
- Ну да, глупее не бывает - прогон аргументов через стек, к четырём
тактам плюс сотня на тривиальную арифметику. Насмешил, не путай
опыт с мнением. - enc(25.02.2024 21:37)
- Это стандартное решение. Никто не говорит что оно подходит для
данной архитектуры. - POV(25.02.2024 21:40)
- Ещё раз - на дыбу такие стандарты. - enc(25.02.2024 21:45)
- Это стандартное решение. Никто не говорит что оно подходит для
данной архитектуры. - POV(25.02.2024 21:40)
- Ну да, глупее не бывает - прогон аргументов через стек, к четырём
тактам плюс сотня на тривиальную арифметику. Насмешил, не путай
опыт с мнением. - enc(25.02.2024 21:37)
- Мнение человека не способного 64 на 8 поделить особенно ценно.
Можно подумать, что 16 регистров незадействованные только и ждут
64-битных сложений. Сохранить/восстановить их не надо? - VladislavS.(25.02.2024 22:45)
- Можно и свой класс слепить с любой разрядностью переопределив для
класса +- * /, проблема что арифметические операции придется
кодировать на асме ибо С инструментов для такого нет. - Boвa(25.02.2024 11:44)
- Чё, правда? VladislavS.(1 знак., 25.02.2024 13:31, картинка)
- Костыль с if() пришлось прикрутить из-за невозможности посмотреть бит переноса. - Boвa(25.02.2024 22:27)
- Инструментов нет? Жаль, что в бедуины записывают без простого
экзамена на целочисленное сложение... SciFi(1 знак., 25.02.2024 11:49, ссылка)
- Рубрика костыли и велосипеды - Boвa(25.02.2024 22:29)
- Мы стали забывать... RxTx(1 знак., 25.02.2024 23:23, картинка)
- Ну надо же. Инструменты нашлись! - SciFi(25.02.2024 22:37)
- Рубрика костыли и велосипеды - Boвa(25.02.2024 22:29)
- Чё, правда? VladislavS.(1 знак., 25.02.2024 13:31, картинка)
- У avr через вызов библиотечной функции с прогоном аргументов
через стек. На дыбу того кто это придумал. У авра 32 РОН-а , для сложения двух
64-х достаточно четырёх команд enc(125 знак., 25.02.2024 21:14)
- Дык на любом ассемблере так :) Интересно, а компилер
умножение/деление на степень двойки сдвигом умеет ?? :) - Adept(25.02.2024 01:27)
- Нет, не на любом. MIPS знаменит отсутствием флага переноса. Ну и
RISC-V тоже. SciFi(1 знак., 25.02.2024 10:29, ссылка)
- И как же ж оно там работает? Или эти крестьяне не занимаются
арифметикой, а только тексты обрабатывают (там реально перенос не
нужен)? - Kpoк(25.02.2024 10:47)
- Вы когда на ЯВУ программы пишете, часто флаг переноса используете?
И как же оно у вас работает? :) - VladislavS.(25.02.2024 13:59)
- Как Вы могли подумать обо мне такое, чтоб я на ваших ЯВУ программы
писал??? А на моём сопроцессоре 80387 аккумулятор имеет 80 бит в
длину. Ему флаг переноса не нужен. И всё-таки я не услышал ответа,
как оно работает. А как делают кольцевой сдвиг? - Kpoк(25.02.2024 16:13)
- Странно, тут всем на микроконтроллерах 256 бит подавай, а вам 80
хватает? А кольцевой сдвиг очень просто VladislavS.(2 знак., 25.02.2024 16:55, картинка, картинка)
- Не понимаю я по-вашему нихира. Но неужели эти 4 команды проще, чем
вытащить один битик наружу? - Kpoк(25.02.2024 17:21)
- Что характерно, плюсовик по-вашему и для ARM, и для RISC-V, и для
AVR понимает. Может вылезти из танчика уже? - VladislavS.(25.02.2024 17:37)
- Из Нирваны, как отмечено ниже. - Kpoк(25.02.2024 17:42)
- Рад, что вы достигли нирваны, если такая мелкая фигня - это всё,
что вас беспокоит :-) - SciFi(25.02.2024 17:25)
- Не всё. Но не вываливать же это в непрофильную конфу. - Kpoк(25.02.2024 17:42)
- А как же и перед кем тогда выёбываться? :) Смотрите я умею, а вы не
умеете, бе-бе-бе? :) - RxTx(25.02.2024 18:36)
- Здесь собрались самодостаточные состоявшиеся мущщины, верно? Зачем
им заниматься такой фигнёй? - SciFi(25.02.2024 18:42)
- Очевидно это доставляет им удовольствие... - RxTx(25.02.2024 18:53)
- Здесь собрались самодостаточные состоявшиеся мущщины, верно? Зачем
им заниматься такой фигнёй? - SciFi(25.02.2024 18:42)
- А как же и перед кем тогда выёбываться? :) Смотрите я умею, а вы не
умеете, бе-бе-бе? :) - RxTx(25.02.2024 18:36)
- Не всё. Но не вываливать же это в непрофильную конфу. - Kpoк(25.02.2024 17:42)
- Что характерно, плюсовик по-вашему и для ARM, и для RISC-V, и для
AVR понимает. Может вылезти из танчика уже? - VladislavS.(25.02.2024 17:37)
- Не понимаю я по-вашему нихира. Но неужели эти 4 команды проще, чем
вытащить один битик наружу? - Kpoк(25.02.2024 17:21)
- Странно, тут всем на микроконтроллерах 256 бит подавай, а вам 80
хватает? А кольцевой сдвиг очень просто VladislavS.(2 знак., 25.02.2024 16:55, картинка, картинка)
- Как Вы могли подумать обо мне такое, чтоб я на ваших ЯВУ программы
писал??? А на моём сопроцессоре 80387 аккумулятор имеет 80 бит в
длину. Ему флаг переноса не нужен. И всё-таки я не услышал ответа,
как оно работает. А как делают кольцевой сдвиг? - Kpoк(25.02.2024 16:13)
- Вы когда на ЯВУ программы пишете, часто флаг переноса используете?
И как же оно у вас работает? :) - VladislavS.(25.02.2024 13:59)
- И как же ж оно там работает? Или эти крестьяне не занимаются
арифметикой, а только тексты обрабатывают (там реально перенос не
нужен)? - Kpoк(25.02.2024 10:47)
- Легко, мой хороший. Если быстрей сдвигами, то компилятор непременно
так и слелает. И не только степени двойки, много других
оптимизаций¸ замены делений умножениями и др. - VladislavS.(25.02.2024 03:10)
- А не "нужное" деление или умножение компилятор выбросит или "тупо"
выполнит? - ILYAUL(25.02.2024 10:14)
- Ну вы как вчера родились. VladislavS.(1 знак., 25.02.2024 11:55, картинка)
- А не "нужное" деление или умножение компилятор выбросит или "тупо"
выполнит? - ILYAUL(25.02.2024 10:14)
- Нет, не на любом. MIPS знаменит отсутствием флага переноса. Ну и
RISC-V тоже. SciFi(1 знак., 25.02.2024 10:29, ссылка)
- Тут ниже понеслось в дебри доказательств на С "возможно всё!" но
смысл был другой. На ASM компактнее по памяти и быстрее по тактам. RxTx(253 знак., 25.02.2024 18:29)