Ну если учитывать off-by-one, вы встретите 13 электричек. Но да, на конечный ответ это не повлияет. У AI можно спросить, сколько весит 1 кубометр воды на глубине 10м воды. Ответ вас порадует. Хотя, с последними версиями не тестил.
Так от архитектуры зависит, не вижу причин для спора. BTW я еще ни разу не встревал архитектуры, в которой есть команда add, которая не аффектит флаги и одновременно нет команды add, которая аффектит флаги.
Не всегда и не везде. К тому-же бывает такая штука, как условное выполнение опкода, которое конвеер не сбрасывает. Хотя всё эти фичи зависят от архитектуры. Вся прелесть C в том, что он хоть и близок к железу, но всё таки от конкретной архитектуры не зависит.
В целом, я не говорю, что сама идея дурацкая. В целом, здравая, но непонятно как реализуемая. Проводить проверку на переполнение после каждой операции - затратно и сломает много кода. Вводить дополнительные операторы, какие, как? Вот операторов циклических сдвигов до сих пор не завезли, а уж сколько лет прошло. Прагмами? Ада и багов будет еще больше. Функциями? Ну вот так и поступают, если надо.
Причем тут "нужна" и "не нужна"? Она есть, и это реальность. Хотите другую - делайте своё ядро и компилятор к нему. Получите, возможно, прекрасную вещь, но нафиг никому не нужную. PS. BTW, на кольцах построено довольно много быстрых хэш-функций. Вот это то, что первым пришло в голову.
Конечно справятся. Вы готовы к тому, чтобы любимые многими Python и Java работали раза этак в 3 медленнее? Ну камон, целочисленная арифметика в кольце - это основа компьютерных вычислений. Если для кого-то это новость, то это говорит только о серьёзных пробелах в фундаментальных знаниях, не более.
AVR вообще значительно проще устроен. Я не только про ядро, я про вообще. Такие штуки зависят от реализации конкретной периферии в конкретном микроконтроллере, ну или в серии.
Это называется Bit-Banding. Грамотно внедрить его можете сами, достаточно немного почитать документацию. А еще есть такие полезные регистры в GPIO как BSRR и BRR, которые позволяют менять состояния пинов без RMW.
Ну если учитывать off-by-one, вы встретите 13 электричек. Но да, на конечный ответ это не повлияет.
У AI можно спросить, сколько весит 1 кубометр воды на глубине 10м воды. Ответ вас порадует. Хотя, с последними версиями не тестил.
Так от архитектуры зависит, не вижу причин для спора. BTW я еще ни разу не встревал архитектуры, в которой есть команда add, которая не аффектит флаги и одновременно нет команды add, которая аффектит флаги.
Не всегда и не везде. К тому-же бывает такая штука, как условное выполнение опкода, которое конвеер не сбрасывает. Хотя всё эти фичи зависят от архитектуры. Вся прелесть C в том, что он хоть и близок к железу, но всё таки от конкретной архитектуры не зависит.
В целом, я не говорю, что сама идея дурацкая. В целом, здравая, но непонятно как реализуемая. Проводить проверку на переполнение после каждой операции - затратно и сломает много кода. Вводить дополнительные операторы, какие, как? Вот операторов циклических сдвигов до сих пор не завезли, а уж сколько лет прошло. Прагмами? Ада и багов будет еще больше. Функциями? Ну вот так и поступают, если надо.
Причем тут "нужна" и "не нужна"? Она есть, и это реальность. Хотите другую - делайте своё ядро и компилятор к нему. Получите, возможно, прекрасную вещь, но нафиг никому не нужную.
PS. BTW, на кольцах построено довольно много быстрых хэш-функций. Вот это то, что первым пришло в голову.
Конечно справятся. Вы готовы к тому, чтобы любимые многими Python и Java работали раза этак в 3 медленнее? Ну камон, целочисленная арифметика в кольце - это основа компьютерных вычислений. Если для кого-то это новость, то это говорит только о серьёзных пробелах в фундаментальных знаниях, не более.
Потому что
add rax, rbx
(для остальных архитектур найдёте сами) не выбрасывает исключений. Максимум, устанавливает флаг переноса.AVR вообще значительно проще устроен. Я не только про ядро, я про вообще. Такие штуки зависят от реализации конкретной периферии в конкретном микроконтроллере, ну или в серии.
Да всё равно где он находится. До main() его уже потрогал тот код, который в main() передаёт управление. И там будет мусор.
Какие виртуальные адреса? В примере память выделяется на стеке.
Это называется Bit-Banding. Грамотно внедрить его можете сами, достаточно немного почитать документацию. А еще есть такие полезные регистры в GPIO как BSRR и BRR, которые позволяют менять состояния пинов без RMW.
Ответил в пм
А если код уже входит в проект? Просто интересно посмотреть на девайс вживую, ну и просто пообщаться.