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

 
 
> GCC перепутывает регистры на типе float
vova7890
сообщение Jan 10 2011, 19:03
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 43
Регистрация: 19-11-10
Пользователь №: 61 026



Пишу на гсс 4.5.2.Кароче заметил что спринтф не правильно схавал флоат, я отдизасмил и сравнил с дизасмом иара

char s[56]={0};
sprintf(s, "%f", 55.2);

дизасм гсс:
Код
                MOV     R0, SP
                LDR     R1, =unk_4A6
                LDR     R2, =0x404B9999
                LDR     R3, =0x9999999A


дизасм иара:
Код
                LDR     R3, =0x404B9999
                LDR     R2, =0x9999999A
                MOV     R0, SP
                ADR     R1, dword_58


как видно регистры R2 R3 перепутаны.

LDR R2, =0x404B9999
LDR R3, =0x9999999A

LDR R3, =0x404B9999
LDR R2, =0x9999999A


Че делать?


Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
vova7890
сообщение Jan 10 2011, 23:48
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 43
Регистрация: 19-11-10
Пользователь №: 61 026



Забыл сказать, функция sprintf является прошивочной и от компилятора не зависит

да и не только спринф, многие функции работаеют не так, ибо число другое получается

в буфере(gcc): 2D302E303030303030 (-0.000000)
в буфере(iar): 35352E323030303030 (55.20000)

Go to the top of the page
 
+Quote Post
alx2
сообщение Jan 11 2011, 06:39
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 340
Регистрация: 25-10-05
Из: Пермь, Россия
Пользователь №: 10 091



Цитата(vova7890 @ Jan 11 2011, 07:48) *
Забыл сказать, функция sprintf является прошивочной и от компилятора не зависит
Это не имеет значения. Корректно написанный код на языке программирования должен давать верный результат при выполнении.

Цитата(vova7890 @ Jan 11 2011, 07:48) *
да и не только спринф, многие функции работаеют не так, ибо число другое получается

в буфере(gcc): 2D302E303030303030 (-0.000000)
в буфере(iar): 35352E323030303030 (55.20000)

Можете привести исходный текст, который при компиляции IAR дает один результат, а при компиляции GCC - другой?


--------------------
Всего наилучшего,
Alex Mogilnikov
Go to the top of the page
 
+Quote Post

Сообщений в этой теме


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

 


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


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