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

 
 
> Помощь в Keil Uvision 4, BL.W __aeabi_memcpy4
Only
сообщение Nov 19 2014, 21:14
Сообщение #1





Группа: Участник
Сообщений: 11
Регистрация: 16-11-14
Пользователь №: 83 698



Помогите ответить на вопрос:

0x08000530 F000F878 BL.W __aeabi_memcpy4 (0x08000624)

А как вы думаете, зачем компилятор вставил вызов этой функции, хотя в вашем коде на С вызова нет?


Прикрепленные файлы
Прикрепленный файл  Keil_4_Empty_Project.rar ( 370.56 килобайт ) Кол-во скачиваний: 8
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
UniSoft
сообщение Nov 21 2014, 15:14
Сообщение #2


Участник
*

Группа: Свой
Сообщений: 68
Регистрация: 7-05-05
Из: China, Shenzhen
Пользователь №: 4 812



Цитата(Only @ Nov 20 2014, 05:14) *
Помогите ответить на вопрос:

0x08000530 F000F878 BL.W __aeabi_memcpy4 (0x08000624)

А как вы думаете, зачем компилятор вставил вызов этой функции, хотя в вашем коде на С вызова нет?

так это оптимизация,
а как он еще такое должен был реализовать?
int32_t mass1 [11] = {55,36,3,67,84,123,53,7,47,65,217};
Go to the top of the page
 
+Quote Post
Only
сообщение Nov 21 2014, 17:17
Сообщение #3





Группа: Участник
Сообщений: 11
Регистрация: 16-11-14
Пользователь №: 83 698



А можно поподробнее?) Как и что он оптимизирует?


Цитата(UniSoft @ Nov 21 2014, 16:14) *
так это оптимизация,
а как он еще такое должен был реализовать?
int32_t mass1 [11] = {55,36,3,67,84,123,53,7,47,65,217};


Сообщение отредактировал Only - Nov 21 2014, 17:17
Go to the top of the page
 
+Quote Post
UniSoft
сообщение Nov 21 2014, 19:11
Сообщение #4


Участник
*

Группа: Свой
Сообщений: 68
Регистрация: 7-05-05
Из: China, Shenzhen
Пользователь №: 4 812



Цитата(Only @ Nov 22 2014, 01:17) *
А можно поподробнее?) Как и что он оптимизирует?

за подробностями вам лучше к стандартам си обратиться.
что оптимизирует? у вас массив из 11 элементов - локальная переменная,
которая инициализируется неким значением,
итого на заполнение этого массива поэлементно потребовалось бы как минимум 22 инструкции,
а так всего 4 простым копированием.
А вот как оптимизирует, все зависит от компилятора.
Go to the top of the page
 
+Quote Post
Only
сообщение Nov 25 2014, 18:22
Сообщение #5





Группа: Участник
Сообщений: 11
Регистрация: 16-11-14
Пользователь №: 83 698



Здравствуйте. Ещё такой вопрос) По коду,там где создаём структуру. При описании листинга дизассемблера структуры, препод спрашивает следующее:

Я пишу: Я понял так, что мы скопировали структуру в стек два раза.

>>>> И зачем же два раза?

Так, как у нас 11 элементов массива копируются не в регистры,а в стек. И функция работает с ними.

>>>> И все 11 копируются в стек?

Помогите пожалуйста разобраться с этим вопросом)

Цитата(UniSoft @ Nov 21 2014, 20:11) *
за подробностями вам лучше к стандартам си обратиться.
что оптимизирует? у вас массив из 11 элементов - локальная переменная,
которая инициализируется неким значением,
итого на заполнение этого массива поэлементно потребовалось бы как минимум 22 инструкции,
а так всего 4 простым копированием.
А вот как оптимизирует, все зависит от компилятора.

Go to the top of the page
 
+Quote Post



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

 


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


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