реклама на сайте
подробности

 
 
> Обработка ошибок с плавающей запятой, Прошу совета!!!
Diver_ant
сообщение Dec 22 2008, 10:20
Сообщение #1





Группа: Новичок
Сообщений: 6
Регистрация: 9-02-07
Пользователь №: 25 200



Подскажите пожалуйста, как правильно обрабатывать ошибки с плавающей запятой, такие как деление на ноль например? Как можно проверить является ли данный участок памяти действиетльно валидным флоатом? Есть ли возможность обрабатывать подобные ошибки через прерывания?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
defunct
сообщение Dec 22 2008, 15:20
Сообщение #2


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(Diver_ant @ Dec 22 2008, 12:20) *
как правильно обрабатывать ошибки с плавающей запятой, такие как деление на ноль например?

Зависит от вашей конкретной ситуации.
Главное не применять "==" к флоат.

Цитата
Есть ли возможность обрабатывать подобные ошибки через прерывания?

Всегда можно инициировать исключение, например DataAbort и соотв. его обработать...

Пишем прототип для этого дела
Код
extern void raise_exception( U32 code);

оформляем asm функайку:
Код
DeadBeef EQU 0xDEADBEEF

raise_exception:
LDR     R1, =DeadBeef
LDR     R1, [R1]
MOV     pc, lr


В DAbt обработчике смотреть код исключения в R0, если R1 == 0xDEADBEEF..
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 03:16
Рейтинг@Mail.ru


Страница сгенерированна за 0.01335 секунд с 7
ELECTRONIX ©2004-2016