Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Обнаружить переполнение целочисленной переменной
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > Программирование
athlon64
SAM7X, IAR
Требуется обнаружить переполнение переменной при выполнении операций сложения и умножения для разных целочисленных типов.
При этом не хотелось бы производить вычисления в переменной заведомо большей размерности чтобы потом сделать простое сравнение с максимально возможным значением для меньшего типа. Дабы не потерять на этом ОЗУ и время.

Надеялся, что получится определить переполнение по регистру CPSR, и биту C в нём. Бит отлично выставляется при переполнениях на сложении, но, к сожалению, не выставляется на умножении.

Может есть другие варианты определения переполнений?
ar__systems
Цитата(athlon64 @ Jul 25 2011, 07:49) *
SAM7X, IAR
Требуется обнаружить переполнение переменной при выполнении операций сложения и умножения для разных целочисленных типов.
При этом не хотелось бы производить вычисления в переменной заведомо большей размерности чтобы потом сделать простое сравнение с максимально возможным значением для меньшего типа. Дабы не потерять на этом ОЗУ и время.

Надеялся, что получится определить переполнение по регистру CPSR, и биту C в нём. Бит отлично выставляется при переполнениях на сложении, но, к сожалению, не выставляется на умножении.

Может есть другие варианты определения переполнений?


Действительно флаги переполнения не выставляются для MUL. Можете использовать SMMUL команду, для обнаружения переполнения в команде MUL.

Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.